![]() |
Home | Libraries | People | FAQ | More |
boost::proto::lazy::impl
// In header: <boost/proto/transform/lazy.hpp>
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(A0,…An), then let O'
be boost::result_of<proto::make<O>(Expr, State, Data)>::type
and let T' be O'(A0,…An).
If T if of the form
O(A0,…An ...), then let O'
be boost::result_of<proto::make<O>(Expr, State, Data)>::type
and let T' be O'(A0,…An ...).
Otherwise, let T'
be boost::result_of<proto::make<T>(Expr, State, Data)>::type.
The result type is
boost::result_of<proto::call<T'>(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;
behaves as follows:
proto::lazy<T>::impl<Expr,State,Data>::operator()
If T if of the form
O(A0,…An), then let O'
be boost::result_of<
and let proto::make<O>(Expr, State, Data)>::typeT' be O'(A0,…An).
If T if of the form
O(A0,…An ...), then let O'
be boost::result_of<
and let proto::make<O>(Expr, State, Data)>::typeT' be O'(A0,…An ...).
Otherwise, let T'
be boost::result_of<.
proto::make<T>(Expr, State, Data)>::type
Returns: |
|