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

BOOST_FUSION_ADAPT_ASSOC_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_ASSOC_TPL_STRUCT Это макрос, который может быть использован для генерации всех необходимых шаблонов для создания произвольной структуры шаблона модели Random Access Sequence и Associative Sequence.

Synopsis
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT(
    (template_param0)(template_param1)...,
    (struct_name) (specialization_param0)(specialization_param1)...,
    ([member_type0,] member_name0, key_type0)
    ([member_type1,] member_name1, key_type1)
    ...
    )
Semantics

Приведенный выше макрос генерирует необходимый код для адаптации struct_name или произвольной специализации struct_name в качестве модели Random Access Sequence и Associative Sequence. Последовательность (template_param0)(template_param1)... объявляет имена используемых параметров типа шаблона. Последовательность (специализация_param0)(специализация_param1)... объявляет параметры шаблона фактической специализации struct_name, которая адаптирована как последовательность слияния. Последовательность ([member_typeN,] member_nameN, key_typeN) кортежей объявляет тип, имя и тип ключа каждого из элементов структуры, которые являются частью последовательности.

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

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

Header
#include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
#include <boost/fusion/include/adapt_assoc_struct.hpp>
Example
namespace demo
{
    template<typename Name, typename Age>
    struct employee
    {
        Name name;
        Age age;
    };
}
namespace keys
{
    struct name;
    struct age;
}
// Any instantiated demo::employee is now a Fusion sequence.
// It is also an associative sequence with
// keys keys::name and keys::age present.
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT(
    (Name)(Age),
    (demo::employee) (Name)(Age),
    (name, keys::name)
    (age, keys::age))
// Without BOOST_PP_VARIADICS support :
BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT(
    (Name)(Age),
    (demo::employee) (Name)(Age),
    (Name, name, keys::name)
    (Age, age, keys::age))

PrevUpHomeNext

Статья BOOST_FUSION_ADAPT_ASSOC_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 19:09:27/0.0064499378204346/0