Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Header <boost/proto/make_expr.hpp>

Definition of the proto::make_expr() and proto::unpack_expr() utilities for building Proto expression nodes from child nodes or from a Fusion sequence of child nodes, respectively.

namespace boost {
  namespace proto {
    template<typename Tag, typename... A> 
      typename proto::result_of::make_expr<Tag, A const...>::type const 
      make_expr(A const &...);
    template<typename Tag, typename Domain, typename... A> 
      typename proto::result_of::make_expr<Tag, Domain, A const...>::type const 
      make_expr(A const &...);
    template<typename Tag, typename Sequence> 
      typename proto::result_of::unpack_expr<Tag, Sequence const>::type const 
      unpack_expr(Sequence const &);
    template<typename Tag, typename Domain, typename Sequence> 
      typename proto::result_of::unpack_expr<Tag, Domain, Sequence const>::type const 
      unpack_expr(Sequence const &);
    namespace functional {
      template<typename Tag, typename Domain = proto::deduce_domain> 
        struct make_expr;
      template<typename Tag, typename Domain = proto::deduce_domain> 
        struct unpack_expr;
    }
    namespace result_of {
      template<typename Tag, typename... A> struct make_expr;

      template<typename Tag, typename Domain, typename... A> 
        struct make_expr<Tag, Domain, A...>;

      template<typename Tag, typename Sequence, typename Void = void> 
        struct unpack_expr;

      template<typename Tag, typename Domain, typename Sequence> 
        struct unpack_expr<Tag, Domain, Sequence>;
    }
  }
}

PrevUpHomeNext