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::if_::impl

Synopsis

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


template<typename Expr, typename State, typename Data> 
struct impl :  proto::transform_impl< Expr, State, Data > {
  // types
  typedef typename mpl::if_<
      typename boost::result_of<proto::when<proto::_, If>(Expr, State, Data)>::type,
      typename boost::result_of<proto::when<proto::_, Then>(Expr, State, Data)>::type,
      typename boost::result_of<proto::when<proto::_, Else>(Expr, State, Data)>::type
    >::type 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;

    Parameters:

    data

    A data of arbitrary type

    expr

    An expression

    state

    The current state

    Returns:

    proto::when<proto::_, Then-or-Else>()(expr, state, data)


PrevUpHomeNext