...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::proto::functional::child — A callable PolymorphicFunctionObject that is equivalent to the
proto::child()
function.
// In header: <boost/proto/traits.hpp> template<typename N = mpl::long_<0> > struct child : proto::callable { // member classes/structs/unions template<typename This, typename Expr> struct result<This(Expr)> : proto::result_of::child< Expr, N > { }; // public member functions template<typename Expr> typename proto::result_of::child< Expr &, N >::type operator()(Expr &) const; template<typename Expr> typename proto::result_of::child< Expr const &, N >::type operator()(Expr const &) const; };
A callable PolymorphicFunctionObject that is equivalent to the
proto::child()
function. N
is required to be an MPL Integral Constant.
child
public member functionstemplate<typename Expr> typename proto::result_of::child< Expr &, N >::type operator()(Expr & expr) const;
Return the N
th child of the given expression.
Parameters: |
|
||
Requires: |
|
||
Returns: |
|
||
Throws: |
Will not throw. |
template<typename Expr> typename proto::result_of::child< Expr const &, N >::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.