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

BOOST_FUSION_ADAPT_STRUCT_NAMED

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_STRUCT_NAMED и BOOST_FUSION_ADAPT_STRUCT_NAMED_NS - это макросы, которые могут быть использованы для создания всего необходимого шаблона для создания произвольной структуры моделислучайной последовательности доступа. Данная структура адаптирована с использованием данного имени.

Synopsis
BOOST_FUSION_ADAPT_STRUCT_NAMED(
    struct_name, adapted_name,
    member_name0,
    member_name1,
    member_name2,
    ...
    )
BOOST_FUSION_ADAPT_STRUCT_NAMED_NS(
    struct_name,
    (namespace0)(namespace1)...,
    adapted_name,
    member_name0,
    member_name1,
    member_name2,
    ...
    )
// Without BOOST_PP_VARIADICS support :
BOOST_FUSION_ADAPT_STRUCT_NAMED(
    struct_name, adapted_name,
    (member_type0, member_name0)
    (member_type1, member_name1)
    (auto, member_name2),
    ...
    )
BOOST_FUSION_ADAPT_STRUCT_NAMED_NS(
    struct_name,
    (namespace0)(namespace1)...,
    adapted_name,
    (member_type0, member_name0)
    (member_type1, member_name1)
    (auto, member_name2),
    ...
    )
Semantics

Вышеуказанные макросы генерируют необходимый код для адаптацииstruct_nameв качестве моделислучайной последовательности доступапри использованииадаптированного_имякак название адаптированной структуры. Последовательность(namespace0)пространство имен1...объявляет пространство имен дляадаптированное_имя. Он дает полностью квалифицированное имя дляадаптированное имяизпространство имен:пространство имен1::Adapted_name. Если дается пустая последовательность пространства имен (это макрос, который ни к чему не расширяется), адаптированный вид помещается в глобальное пространство имен. Если не указана последовательность пространства имен (т.е.BOOST_FUSION_ADAPT_STRUCT_NAMED), адаптированный вид размещен в пространстве именboost:Слияние:адаптировано. Последовательностьmember_nameN,аргументы или(член_тип N),Member_nameNпары обозначают тип и имена каждого из членов структуры, которые являются частью последовательности.

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

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

Header
#include <boost/fusion/adapted/struct/adapt_struct_named.hpp>
#include <boost/fusion/include/adapt_struct_named.hpp>
Example
namespace demo
{
    struct employee
    {
        std::string name;
        int age;
    };
}
// boost::fusion::adapted::adapted_employee is now a Fusion sequence
// referring to demo::employee
BOOST_FUSION_ADAPT_STRUCT_NAMED(
    demo::employee, adapted_employee,
    name,
    age)
// Without BOOST_PP_VARIADICS support :
BOOST_FUSION_ADAPT_STRUCT_NAMED(
    demo::employee, adapted_employee,
    (auto, name),
    (auto, age))

PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:56:29/0.028028964996338/1