|  | Home | Libraries | People | FAQ | More | 
boost::proto::result_of::make_expr<Tag, Domain, A...> — Metafunction that computes the return type of the
            proto::make_expr()
            function, within the specified domain.
// In header: <boost/proto/make_expr.hpp> template<typename Tag, typename Domain, typename... A> struct make_expr<Tag, Domain, A...> { // types typedef see-below type; };
              Computes the return type of the
              proto::make_expr()
              function.
            
make_expr 
        public
       types
                Let WRAP<X>
                      If X is Y &
                      or (possibly cv-qualified) boost::reference_wrapper<Y>,
                      then WRAP<X>proto::result_of::as_child<Y, Domain>.
                    
                      Otherwise, WRAP<X>proto::result_of::as_expr<X, Domain>.
                    
                If proto::wants_basic_expr<typename Domain::proto_generator>::value
                is true, then let Eproto::basic_expr; otherwise,
                let Eproto::expr.
              
                If Tag is
                proto::tag::terminal, then
                type is a typedef for
                typename .
              WRAP<A0>::type
                Otherwise, type is a typedef for
                boost::result_of<Domain(
              E<
                Tag, proto::listN<
                typename WRAP<A>::type...> >)>::type