![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Serialization - BOOST_STATIC_WARNINGBoost , ,
Motivationtypedef 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 был разработан, чтобы быть похожим на стандарт 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 |