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 unpack_expr

boost::proto::functional::unpack_expr — A PolymorphicFunctionObject equivalent to the proto::unpack_expr() function.

Synopsis

// In header: <boost/proto/make_expr.hpp>

template<typename Tag, typename Domain = proto::deduce_domain> 
struct unpack_expr :  proto::callable {
  template<typename This, typename Sequence> 
  struct result<This(Sequence)> :  
    proto::result_of::unpack_expr<
      Tag,
      Domain,
      typename boost::remove_reference< Sequence >::type
    >
  {
  };

  // public member functions
  template<typename Sequence> 
    typename proto::result_of::unpack_expr< Tag, Domain, Sequence const >::type const 
    operator()(Sequence const &) const;
};

Description

In all cases, proto::functional::unpack_expr<Tag, Domain>()(seq) is equivalent to proto::unpack_expr()<Tag, Domain>(seq).

proto::functional::unpack_expr<Tag>()(seq) is equivalent to proto::unpack_expr()<Tag>(seq).

unpack_expr public member functions

  1. template<typename Sequence> 
      typename proto::result_of::unpack_expr< Tag, Domain, Sequence const >::type const 
      operator()(Sequence const & sequence) const;

    Construct an expression node with tag type Tag and in the domain Domain.

    Parameters:

    sequence

    A Fusion Forward Sequence

    Returns:

    proto::unpack_expr<Tag, Domain>(sequence)


PrevUpHomeNext