![]()  | 
Home | Libraries | People | FAQ | More | 
boost::proto::unpack_expr — Construct an expression of the requested tag type with a domain and with children from the specified Fusion Forward Sequence.
// In header: <boost/proto/make_expr.hpp> template<typename Tag, typename Sequence> typename proto::result_of::unpack_expr<Tag, Sequence const>::type const unpack_expr(Sequence const & sequence); template<typename Tag, typename Domain, typename Sequence> typename proto::result_of::unpack_expr<Tag, Domain, Sequence const>::type const unpack_expr(Sequence const & sequence);
            This function template may be invoked either with or without specifying a
            Domain argument. If no domain is specified, the domain
            is deduced by examining domains of each element of the sequence. See
             for a full
            description of the procedure used.
          proto::deduce_domain
            Let s be a Fusion RandomAccessSequence equivalent to
            sequence.
            Let  be defined such that:
            WRAP(N, s)
                  If fusion::result_of::value_at_c<decltype(s),N>::type is a reference type
                  or an instantiation of boost::reference_wrapper<>,
                   is equivalent to
                  WRAP(N, s).
                proto::as_child<Domain>(fusion::at_c<N>(s))
                  Otherwise,  is equivalent to
                  WRAP(N, s).
                proto::as_expr<Domain>(fusion::at_c<N>(s))
            If 
            is true, then let proto::wants_basic_expr<typename Domain::proto_generator>::value be
            E; otherwise,
            let proto::basic_expr be
            E.
          proto::expr
            Let  be defined as
            MAKE(Tag, b...).
          E<Tag,
            proto::listN<decltype(b)...> >::make(b...)
            If Tag is
            , then return
            proto::tag::terminal.
          WRAP(0, s)
            Otherwise, return
            Domain()(, where
            MAKE(Tag, WRAP(0, s),...
            WRAP(N-1, s)))N is the size of Sequence.
          
Parameters:  | 
  |