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

The MPL Reference Manual: apply_wrap

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 / Invocation / apply_wrap

apply_wrap

Synopsis

template<
      typename F
    >
struct apply_wrap0
{
    typedef unspecified type;
};
template<
      typename F, typename A1
    >
struct apply_wrap1
{
    typedef unspecified type;
};
...
template<
      typename F, typename A1,... typename An
    >
struct apply_wrapn
{
    typedef unspecified type;
};

Description

Класс метафункцийFс аргументамиА1,Ан.

По сути,apply_wrapформы представляют собой не что иное, как синтаксические обертки вокругF::applyAn>::type/F::apply::typeвыражений (отсюда и название). Они обеспечивают более лаконичное обозначение и более высокую переносимость, чем их несущие конструкции, за счет дополнительной реализации шаблона.

Parameters

Parameter Requirement Description
F Класс метафункций Класс метафункций для вызова.
А1...Ан Любой тип Призываю аргументы.

Expression semantics

Для любогометафункционального классаfи произвольных типовa1...a:

typedef apply_wrapn<f,a1,...an>::type t;
Return type:Any type.
Semantics:If n > 0, equivalent to typedef f::apply<a1,... an>::type t;, otherwise equivalent to either typedef f::apply::type t; or typedef f::apply<>::type t; depending on whether f::apply is a class or a class template.

Example

struct f0
{
    template< typename T = int > struct apply
    {
        typedef char type;
    };
};
struct g0
{
    struct apply { typedef char type; };
};
struct f2
{
    template< typename T1, typename T2 > struct apply
    {
        typedef T2 type;
    };
};
typedef apply_wrap0< f0 >::type r1;
typedef apply_wrap0< g0 >::type r2;
typedef apply_wrap2< f2,int,char >::type r3;
BOOST_MPL_ASSERT(( is_same<r1,char> ));
BOOST_MPL_ASSERT(( is_same<r2,char> ));
BOOST_MPL_ASSERT(( is_same<r3,char> ));

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:20:24/0.0092229843139648/1