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

// In header: <boost/proto/transform/impl.hpp>

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, 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;
};

Description

transform public member functions

  1. template<typename Expr> 
      typename PrimitiveTransform::template impl<Expr &, unspecified, unspecified>::result_type 
      operator()(Expr & expr) const;

    Returns:

    typename PrimitiveTransform::template impl<Expr &, unspecified, unspecified>()(expr, unspecified, unspecified)
  2. 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 &, unspecified>()(expr, state, unspecified)
  3. 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 &, unspecified>()(expr, state, unspecified)
  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;

    Returns:

    typename PrimitiveTransform::template impl<Expr &, State &, Data &>()(expr, state, data)
  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;

    Returns:

    typename PrimitiveTransform::template impl<Expr &, State const &, Data &>()(expr, state, data)

PrevUpHomeNext