Macro BOOST_PROTO_BASIC_EXTENDS
BOOST_PROTO_BASIC_EXTENDS — For creating expression wrappers that add members to a Proto expression template, like
proto::extends<>
,
but while retaining POD-ness of the expression wrapper.
Synopsis
BOOST_PROTO_BASIC_EXTENDS(Expr, Derived, Domain)
Description
BOOST_PROTO_BASIC_EXTENDS()
добавляет основные типы, функции-члены и членов данных, необходимые для создания структуры допустимого расширения выражения Proto. Он делает не добавить любые конструкторы, виртуальные функции или блоки контроля доступа, которые сделали бы содержащую структуру не-POD.
Expr
- это выражение Прото, которое окрашивает структуру. Выведенный
- это тип клонирующего сооружения. Домен
является доменом Прото, к которому относится это расширение выражения. (См. прото::domain<>
.) Может быть предвиден "typename
", если указанный домен является зависимым типом.
BOOST_PROTO_BASIC_EXTENDS()
добавляет к своей структуре по закрытию ровно одного члена данных типа Expr
.
If the Domain
parameter is dependent, you can specify it as
typename Domain
, as in
BOOST_PROTO_BASIC_EXTENDS(Expr, Derived, typename Domain)
Пример:
template< class Expr >
struct my_expr;
struct my_domain
: proto::domain< proto::pod_generator< my_expr > >
{};
template< class Expr >
struct my_expr
{
BOOST_PROTO_BASIC_EXTENDS(Expr, my_expr, my_domain)
};
my_expr< proto::terminal<int>::type > const _1 = {{1}};
Смотри также: