#define BOOST_FUSION_ADAPT_STRUCT(name, bseq) \ BOOST_FUSION_ADAPT_STRUCT_I( \ name, BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_X bseq, 0)) \ /***/ #define BOOST_FUSION_ADAPT_STRUCT_X(x, y) \ ((x, y)) BOOST_FUSION_ADAPT_STRUCT_Y #define BOOST_FUSION_ADAPT_STRUCT_Y(x, y) \ ((x, y)) BOOST_FUSION_ADAPT_STRUCT_X #define BOOST_FUSION_ADAPT_STRUCT_X0 #define BOOST_FUSION_ADAPT_STRUCT_Y0Я же начинаю грустить с мыслями "ипать-колотить, ну тут же всё просто!"...
Поэтому, дабы разбавить свой залежавшийся блог свежачком, я решил написать более-менее подробный ликбез о простом, а именно о Boost.Preprocessor.
Приведённый пример (boost/fusion/adapted/struct/adapt_struct.hpp) я разберу в конце статьи.