|  | 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;
                  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: | 
                   |