Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Serialization - BOOST_STATIC_WARNING

Boost , ,

C++ Boost

Serialization

BOOST_STRONG_TYPEDEF


Motivation

typedef creates an alias for an existing type. It does not create a new type that can be used for matching either function or template parameters. This can be shown by trying to compile the following example.

typedef int a;
void f(int x);  // (1) function to handle simple integers
void f(a x);    // (2) special function to handle integers of type a 
int main(){
    int x = 1;
    a y;
    y = x;      // other operations permitted as a is converted as necessary
    f(x);       // chooses (1)
    f(y);       // chooses (2)
}
Since typedef doesn't create a new type, this program can't compile to code that implements its obvious intention.

Использование BOOST_STRONG_TYPEDEF решает эту проблему.

  #include   BOOST_STRONG_TYPEDEF(int, a) void f(int x); // (1) функция для обработки простых целых чисел void f(a x); // (2) специальная функция для обработки целых чисел типа a int main(){ int x = 1; a y; y = x; // другие операции, разрешенные как преобразованные как необходимо f(x); // выбирает (1) f(y); // выбирает (2)  
Программа будет компилироваться и работать, как и ожидалось.

Использование

Синтаксис BOOST_STRONG_TYPEDEF был разработан, чтобы быть похожим на стандарт typedef.
 BOOST_STRONG_TYPEDEF (примитивный тип, имя) 
создаст новый тип «имя», который будет заменяться на оригинальный тип, но все же на отдельный тип.

Реализация

BOOST_STRONG_TYPEDEF представляет собой макрос, который генерирует класс, называемый «имя», который обертывает экземпляр своего примитивного типа и предоставляет соответствующие операторы преобразования, чтобы сделать новый тип заменяемым на тот, который он обертывает.

© Copyright Robert Ramey 2002-2004. Распространяется под лицензией Boost Software License, версия 1.0. (См. сопроводительный файл LICENSE_1_0.txt или копию по адресу http://www.boost.org/LICENSE_1_0.txt)

Статья Serialization - BOOST_STATIC_WARNING раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 14:52:08/0.0031490325927734/0