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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

Struct template impl

boost::proto::pass_through::impl

Synopsis

// In header: <boost/proto/transform/pass_through.hpp>


template<typename Expr, typename State, typename Data> 
struct impl :  proto::transform_impl<Expr, State, Data> {
  // types
  typedef typename proto::result_of::child_c<Grammar, N>::type GN;           // For each N in [0,Expr arity), for exposition only
  typedef typename proto::result_of::child_c<Expr, N>::type    EN;           // For each N in [0,Expr arity), for exposition only
  typedef typename boost::result_of<GN(EN,State,Data)>::type   RN;           // For each N in [0,Expr arity), for exposition only
  typedef typename Expr::proto_tag                             T;            // For exposition only
  typedef proto::expr<T, proto::listN<R0,...RN> >              result_type;

  // public member functions
  result_type operator()(typename impl::expr_param, 
                         typename impl::state_param, 
                         typename impl::data_param) const;
};

Description

impl public member functions

  1. result_type operator()(typename impl::expr_param expr, 
                           typename impl::state_param state, 
                           typename impl::data_param data) const;

    Requires:

    proto::matches<Expr, Grammar>::value is true.

    Returns:

    result_type::make(
      G0()(proto::child_c<0>(expr), state, data),
      ...
      GN()(proto::child_c<N>(expr), state, data)
    )


PrevUpHomeNext