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

Click here to view the latest version of this page.
PrevUpHomeNext

Struct value

boost::proto::functional::value — A callable PolymorphicFunctionObject that is equivalent to the proto::value() function.

Synopsis

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


struct value :  proto::callable {
  // member classes/structs/unions
  template<typename This, typename Expr> 
  struct result<This(Expr)> :  proto::result_of::value< Expr > {
  };

  // public member functions
  template<typename Expr> 
    typename proto::result_of::value< Expr & >::type operator()(Expr &) const;
  template<typename Expr> 
    typename proto::result_of::value< Expr const & >::type 
    operator()(Expr const &) const;
};

Description

value public member functions

  1. template<typename Expr> 
      typename proto::result_of::value< Expr & >::type 
      operator()(Expr & expr) const;

    Return the value of the given terminal expression.

    Parameters:

    expr

    The terminal expression node.

    Requires:

    proto::is_expr<Expr>::value is true

    0 == Expr::proto_arity::value

    Returns:

    proto::value(expr)

    Throws:

    Will not throw.
  2. template<typename Expr> 
      typename proto::result_of::value< Expr const & >::type 
      operator()(Expr const & expr) const;

    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.


PrevUpHomeNext