BOOST_FUSION_ADAPT_STRUCT Это макрос, который может быть использован для создания всех необходимых шаблонов для создания произвольной структуры моделислучайной последовательности доступа.
BOOST_FUSION_ADAPT_STRUCT(
struct_name,
member_name0,
member_name1,
member_name2,
...
)
BOOST_FUSION_ADAPT_STRUCT(
struct_name,
(member_type0, member_name0)
(member_type1, member_name1)
(auto, member_name2)
...
)
Приведенный выше макрос генерирует необходимый код для адаптации<struct_name
>в качестве моделипоследовательности случайного доступа.
Последовательность<member_nameN,
>аргументов или<(member_typeN,
member_nameN)
>пар объявляет тип и имена каждого из членов структуры, которые являются частью последовательности.
когда член_тип N опущен или установлен на авто, тип выведен с помощью Boost. Типоф.
Макрос должен использоваться в глобальном масштабе, и<struct_name
>должно быть полное название структуры, подлежащей адаптации.
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
namespace demo
{
struct employee
{
std::string name;
int age;
};
}
BOOST_FUSION_ADAPT_STRUCT(
demo::employee,
name,
age)
BOOST_FUSION_ADAPT_STRUCT(
demo::employee,
(auto, name)
(auto, age)
)