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

BOOST_FUSION_ADAPT_TPL_STRUCT

Boost , Chapter 1. Fusion 2.2 , Adapted

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
Description

BOOST_FUSION_ADAPT_TPL_STRUCT Это макрос, который может быть использован для создания всех необходимых шаблонов для создания произвольной структуры шаблона моделислучайной последовательности доступа.

Synopsis
BOOST_FUSION_ADAPT_TPL_STRUCT(
    (template_param0)(template_param1)...,
    (struct_name) (specialization_param0)(specialization_param1)...,
    member_name0,
    member_name1
    ...
    )
// Without BOOST_PP_VARIADICS support :
BOOST_FUSION_ADAPT_TPL_STRUCT(
    (template_param0)(template_param1)...,
    (struct_name) (specialization_param0)(specialization_param1)...,
    (member_type0, member_name0)
    (member_type1, member_name1)
    (auto, member_name2),
    ...
    )
Semantics

Приведенный выше макрос генерирует необходимый код для адаптации<struct_name>или произвольной специализации<struct_name>в качестве моделиСлучайной последовательности доступа. Последовательность<(template_param0)(template_param1)...>объявляет имена используемых параметров типов шаблонов. Последовательность<(specialization_param0)(specialization_param1)...>объявляет параметры шаблона фактической специализации<struct_name>, которая адаптирована как последовательность слияния. Последовательность<member_nameN,>аргументов или<(member_typeN, member_nameN)>пар объявляет тип и имена каждого из членов структуры, которые являются частью последовательности.

когда член_тип N опущен или установлен на авто, тип выведен с помощью Boost. Типоф.

Макрос должен использоваться в глобальном масштабе, и<struct_name>должно быть полное название структуры, подлежащей адаптации.

Header
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
Example
namespace demo
{
    template<typename Name, typename Age>
    struct employee
    {
        Name name;
        Age age;
        int employment_timestamp;
    };
}
// Any instantiated demo::employee is now a Fusion sequence
BOOST_FUSION_ADAPT_TPL_STRUCT(
    (Name)(Age),
    (demo::employee) (Name)(Age),
    (Name, name)
    (Age, age)
    (auto, employment_timestamp))
// Or by infering type completely
BOOST_FUSION_ADAPT_TPL_STRUCT(
    (Name)(Age),
    (demo::employee) (Name)(Age),
    name,
    age,
    employment_timestamp)

PrevUpHomeNext

Статья BOOST_FUSION_ADAPT_TPL_STRUCT раздела Chapter 1. Fusion 2.2 Adapted может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:28:01/0.0066590309143066/0