...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::proto::transform — Inherit from this to make your type a PrimitiveTransform.
// In header: <boost/proto/transform/impl.hpp> template<typename PrimitiveTransform> struct transform { // types typedef PrimitiveTransform transform_type; // member classes/structs/unions template<typename This, typename Expr> struct result<This(Expr)> { // types typedef typename PrimitiveTransform::template impl< Expr,unspecified
,unspecified
>::result_type type; }; template<typename This, typename Expr, typename State> struct result<This(Expr, State)> { // types typedef typename PrimitiveTransform::template impl< Expr, State,unspecified
>::result_type type; }; template<typename This, typename Expr, typename State, typename Data> struct result<This(Expr, State, Data)> { // types typedef typename PrimitiveTransform::template impl< Expr, State, Data >::result_type type; }; // public member functions template<typename Expr> typename PrimitiveTransform::template impl<Expr &,unspecified
,unspecified
>::result_type operator()(Expr &) const; template<typename Expr, typename State> typename PrimitiveTransform::template impl<Expr &, State &,unspecified
>::result_type operator()(Expr &, State &) const; template<typename Expr, typename State> typename PrimitiveTransform::template impl<Expr &, State const &,unspecified
>::result_type operator()(Expr &, State const &) const; template<typename Expr, typename State, typename Data> typename PrimitiveTransform::template impl<Expr &, State &, Data &>::result_type operator()(Expr &, State &, Data &) const; template<typename Expr, typename State, typename Data> typename PrimitiveTransform::template impl<Expr &, State const &, Data &>::result_type operator()(Expr &, State const &, Data &) const; };
transform
public member functionstemplate<typename Expr> typename PrimitiveTransform::template impl<Expr &,unspecified
,unspecified
>::result_type operator()(Expr & expr) const;
Returns: |
typename PrimitiveTransform::template impl<Expr &, |
template<typename Expr, typename State>
typename PrimitiveTransform::template impl<Expr &, State &, unspecified
>::result_type
operator()(Expr & expr, State & state) const;
Returns: |
typename PrimitiveTransform::template impl<Expr &, State &, |
template<typename Expr, typename State>
typename PrimitiveTransform::template impl<Expr &, State const &, unspecified
>::result_type
operator()(Expr & expr, State const & state) const;
Returns: |
typename PrimitiveTransform::template impl<Expr &, State const &, |
template<typename Expr, typename State, typename Data> typename PrimitiveTransform::template impl<Expr &, State &, Data &>::result_type operator()(Expr & expr, State & state, Data & data) const;
Returns: |
typename PrimitiveTransform::template impl<Expr &, State &, Data &>()(expr, state, data)
|
template<typename Expr, typename State, typename Data> typename PrimitiveTransform::template impl<Expr &, State const &, Data &>::result_type operator()(Expr & expr, State const & state, Data & data) const;
Returns: |
typename PrimitiveTransform::template impl<Expr &, State const &, Data &>()(expr, state, data)
|