Файл custom_inout_templ.hpp


Подробное описание

Макрос для специализации сериализующих/десериализующих объектов для пользовательских типов.

Начиная с:
v.1.4.0-b2

#include <oess_1/stdsn/h/inout_templ.hpp>

См. исходные тексты.

Макросы

#define OESS_1__STDSN__CUSTOM_INOUT_TEMPL_HPP
#define OESS_1_STDSN_SPECIALIZE_CUSTOM_TYPE(type)
 Макрос для специализации сериализующих/десериализующих объектов для пользовательских типов.


Макросы

#define OESS_1_STDSN_SPECIALIZE_CUSTOM_TYPE ( type   ) 

Макроопределение:

namespace oess_1 { \
namespace stdsn { \
OESS_1_STDSN_SPECIALIZE_TYPE_IMPL(type) \
} \
}
Макрос для специализации сериализующих/десериализующих объектов для пользовательских типов.

Начиная с:
v.1.4.0-b2
Для того, чтобы обеспечить собственную сериализацию/десериализацию пользовательских типов необходимо выполнить для каждого такого типа два действия:

Первый шаг обязательно должен сделать сам пользователь, т.к. ObjESSty не знает, как именно должен быть сериализован его тип. А для облегчения второго шага предназначен данный макрос. Необходимо указать его где-то в глобальном пространстве имен. Например, так:

  namespace some_project
  {
  // Этот класс должен сериализоваться.
  class my_class_t { ... };

  // Определяем операторы сдвига для него.
  oess_1::io::istream_t &
  operator>>( oess_1::io::istream_t & in, my_class_t & o ) { ... }

  oess_1::io::ostream_t &
  operator<<( oess_1::io::ostream_t & out, my_class_t & o ) { ... }
  }
  
  // ОБЯЗАТЕЛЬНО в глобальном пространстве имен делам специализацию.
  OESS_1_STDSN_SPECIALIZE_CUSTOM_TYPE( some_project::my_class_t )


Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:36 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz