STRUCT TEMPLATE (3)

NAME
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;
  // 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;
};

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)
                      .RE

        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)
                          .RE

            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)
                              .RE

                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)
                                  .RE

                    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)
                                      .RE