![]() |
Home | Libraries | People | FAQ | More |
boost::proto::lazy::impl
template<typename Expr, typename State, typename Data>
struct impl : proto::transform_impl<Expr, State, Data> {
// types
typedef see-below
result_type;
// public member functions
result_type operator()(typename impl::expr_param,
typename impl::state_param,
typename impl::data_param) const;
};
impl
public
types
typedef see-below
result_type;
proto::lazy<T>::impl<Expr,State,Data>::result_type
is calculated as follows:
If T
if of the form
O(T0,...TN)
, then let O'
be boost::result_of<proto::make<O>(Expr, State, Data)>::type
.
Otherwise, let O'
be boost::result_of<proto::make<T>(Expr, State, Data)>::type
.
The result type is boost::result_of<proto::call<O'(T0,...TN)>(Expr, State, Data)>::type
.
impl
public member functionsresult_type operator()(typename impl::expr_param expr, typename impl::state_param state, typename impl::data_param data) const;
proto::lazy<T>::impl<Expr,State,Data>::operator()
behaves as follows:
If T
if of the form
O(T0,...TN)
, then let O'
be boost::result_of<
.
proto::make
<O>(Expr, State, Data)>::type
Otherwise, let O'
be boost::result_of<
.
proto::make
<T>(Expr, State, Data)>::type
Returns: |
proto::call<O'(T0,...TN)>()(expr, state, data)
|