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

Struct template make_expr

boost::proto::functional::make_expr — A PolymorphicFunctionObject equivalent to the proto::make_expr() function.

Synopsis

// In header: <boost/proto/make_expr.hpp>

template<typename Tag, typename Domain = proto::deduce_domain> 
struct make_expr :  proto::callable {
  // member classes/structs/unions
  template<typename This, typename... A> 
  struct result<This(A...)> :  
    proto::result_of::make_expr< Tag, Domain, A... > {
  };

  // public member functions
  template<typename... A> 
    typename proto::result_of::make_expr< Tag, Domain, A const... >::type const 
    operator()(A const &...) const;
};

Description

In all cases, proto::functional::make_expr<Tag, Domain>()(a...) is equivalent to proto::make_expr<Tag, Domain>(a...).

proto::functional::make_expr<Tag>()(a...) is equivalent to proto::make_expr<Tag>(a...).

make_expr public member functions

  1. template<typename... A> 
      typename proto::result_of::make_expr< Tag, Domain, A const... >::type const 
      operator()(A const &... a) const;

    Construct an expression node with tag type Tag and in the domain Domain.

    Returns:

    proto::make_expr<Tag, Domain>(a...)


PrevUpHomeNext