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

The MPL Reference Manual: inherit_linearly

Boost , ,

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

Front Page / Metafunctions / Miscellaneous / inherit_linearly

inherit_linearly

Synopsis

template<
      typename Types
    , typename Node
    , typename Root = empty_base
    >
struct inherit_linearly
    : fold<Types,Root,Node>
{
};

Description

Удобная обертка дляскладываниядля использования в контексте композиции класса, управляемой последовательностями. Возвращает результат последовательное применение двоичногоУзелВ результате предыдущегоУзелпризывКорень, если это первый призыв) и каждый тип вПоследовательностьТипыв порядке.

Parameters

Parameter Requirement Description
Типы Последовательность Виды наследования от.
Узел Бинарное выражениеLambda Expression Производная метафункция.
Корень Тип класса Тип, который должен быть помещен в корень иерархии классов.

Expression semantics

Для любыхпередней последовательноститипов, двоичнойлямбда-выраженияузлаи произвольного типа классакорня:

typedef inherit_linearly<types,node,root>::type r;
Return type:

A class type.

Semantics:

Equivalent to

typedef fold<types,root,node>::type r;

Complexity

Точноразмер::значениеприложенияузел.

Example

template< typename T > struct tuple_field
{
    T field;
};
template< typename T >
inline
T& field(tuple_field<T>& t)
{
    return t.field;
}
typedef inherit_linearly<
      vector<int,char const*,bool>
    , inherit< _1, tuple_field<_2> >
    >::type tuple;
int main()
{
    tuple t;
    field<int>(t) = -1;
    field<char const*>(t) = "text";
    field<bool>(t) = false;
    std::cout
        << field<int>(t) << 'n'
        << field<char const*>(t) << 'n'
        << field<bool>(t) << 'n'
        ;
}

Статья The MPL Reference Manual: inherit_linearly раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 01:54:49/0.0035600662231445/0