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

Click here to view the latest version of this page.
PrevUpHomeNext

Struct template transform

boost::proto::transform — Inherit from this to make your type a PrimitiveTransform.

Synopsis

template<typename PrimitiveTransform> 
struct transform {
  // types
  typedef PrimitiveTransform transform_type;
  template<typename This, typename Expr> 
  struct result<This(Expr)> {
    // types
    typedef typename PrimitiveTransform::template impl< Expr, int, int >::result_type type;
  };
  template<typename This, typename Expr, typename State> 
  struct result<This(Expr, State)> {
    // types
    typedef typename PrimitiveTransform::template impl< Expr, State, int >::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;
};

Description

transform public member functions

  1. template<typename Expr> 
      typename PrimitiveTransform::template impl<Expr &, unspecified, unspecified>::result_type 
      operator()(Expr & expr) const;
  2. template<typename Expr, typename State> 
      typename PrimitiveTransform::template impl<Expr &, State &, unspecified>::result_type 
      operator()(Expr & expr, State & state) const;
  3. template<typename Expr, typename State> 
      typename PrimitiveTransform::template impl<Expr &, State const &, unspecified>::result_type 
      operator()(Expr & expr, State const & state) const;
  4. template<typename Expr, typename State, typename Data> 
      typename PrimitiveTransform::template impl<Expr &, State &, Data &>::result_type 
      operator()(Expr & expr, State & state, Data & data) const;
  5. 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;

PrevUpHomeNext