Struct template basic_expr
boost::proto::basic_expr — Simplified representation of a node in an expression tree.
 
Synopsis
template<typename Tag, typename Args, long Arity = Args::arity> 
struct basic_expr {
  
  typedef Tag                         proto_tag;         
  typedef Args                        proto_args;        
  typedef mpl::long_< Arity >         proto_arity;       
  typedef proto::basic_default_domain proto_domain;      
  typedef basic_expr                  proto_grammar;     
  typedef basic_expr                  proto_base_expr;   
  typedef basic_expr                  proto_derived_expr;
  typedef typename Args::childN       proto_childN;        
  
  template<typename... A> static basic_expr const make(A const &...);
  
  basic_expr & proto_base();
  basic_expr const & proto_base() const;
};
Description
<proto::basic_expr<>>является узлом в дереве шаблона выражения. Это контейнер для детских поддеревьев. Он также служит конечными узлами дерева.
<Tag>- тип, представляющий операцию, закодированную этим выражением. Обычно это одна из структур в пространстве имен<boost::proto::tag>, но это не обязательно. Если<Arity>равно 0, то этот<expr<>>тип представляет собой лист в дереве выражения.
<Args>— список типов, представляющих детей этого выражения. Он является одним из<proto::list1<>>,<proto::list2<>>и т.д. Все типы детей должны быть либо<proto::expr<>>, либо<proto::basic_expr<>&>(или их расширения через<proto::extends<>>или<BOOST_PROTO_EXTENDS()>), если<Arity>не равен 0, в этом случае<Args>должен быть<proto::term<T>>, где<T>может быть любого типа.
<proto::basic_expr<>>является допустимой последовательностью случайного доступа Fusion, где элементами последовательности являются детские выражения.
basic_expr public static functions
- <template<typename...A>staticbasic_exprconstmake(Aconst&...a); >| Требуется: | Число приведенных аргументов должно быть<max(Arity,1)> |  | Возврат: | Новый<basic_expr>объект инициализирован с указанными аргументами. |  
 
 
basic_expr public member functions
- <basic_expr&proto_base(); >
- <basic_exprconst&proto_base()const; >Это перегруженная функция члена, предусмотренная для удобства. Он отличается от вышеуказанной функции только тем, какие аргументы он принимает.