Update of /cvsroot/boost/boost/boost/xpressive/proto
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv5613/proto

Modified Files:
        make_expr.hpp 
Log Message:
use as_arg instead of as_expr to avoid needless copying, proto::make_expr is 
slightly less broken

Index: make_expr.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/make_expr.hpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- make_expr.hpp       3 Feb 2007 09:04:30 -0000       1.10
+++ make_expr.hpp       9 May 2007 06:55:32 -0000       1.11
@@ -41,13 +41,13 @@
             template<typename Tag, long Arity>
             struct make_expr_impl;
 
-        #define BOOST_PROTO_AS_EXPR(z, n, data) proto::as_expr(BOOST_PP_CAT(a, 
n))
+        #define BOOST_PROTO_AS_ARG(z, n, data) proto::as_arg(BOOST_PP_CAT(a, 
n))
         #define BOOST_PROTO_VALUE_AT(z, n, data) typename 
fusion::result_of::value_at_c< Sequence, n >::type
         #define BOOST_PROTO_AT(z, n, data) fusion::at_c< n >(data)
         #define BOOST_PP_ITERATION_PARAMS_1 (4, (1, BOOST_PROTO_MAX_ARITY, 
<boost/xpressive/proto/make_expr.hpp>, 1))
         #include BOOST_PP_ITERATE()
         #undef BOOST_PP_ITERATION_PARAMS_1
-        #undef BOOST_PROTO_AS_EXPR
+        #undef BOOST_PROTO_AS_ARG
         #undef BOOST_PROTO_VALUE_AT
         #undef BOOST_PROTO_AT
         }
@@ -67,7 +67,7 @@
             template<typename Tag, typename Sequence>
             struct unpack_expr
               : detail::make_expr_impl<Tag, 
fusion::result_of::size<Sequence>::type::value>
-                    ::BOOST_NESTED_TEMPLATE from_sequence_result_<Sequence>
+                    ::template from_sequence_result_<Sequence>
             {};
         }
 
@@ -94,7 +94,7 @@
                 struct result_
                 {
                     typedef expr<Tag, BOOST_PP_CAT(args, N)<
-                        BOOST_PP_ENUM_BINARY_PARAMS(N, typename 
result_of::as_expr<A, >::type BOOST_PP_INTERCEPT)
+                        BOOST_PP_ENUM_BINARY_PARAMS(N, typename 
result_of::as_arg<A, >::type BOOST_PP_INTERCEPT)
                     > > type;
                 };
 
@@ -110,8 +110,8 @@
                 typename result_<BOOST_PP_ENUM_PARAMS(N, const A)>::type
                 operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a)) const
                 {
-                    typename result_<BOOST_PP_ENUM_PARAMS(N, A)>::type that =
-                        {BOOST_PP_ENUM(N, BOOST_PROTO_AS_EXPR, _)};
+                    typename result_<BOOST_PP_ENUM_PARAMS(N, const A)>::type 
that =
+                        {BOOST_PP_ENUM(N, BOOST_PROTO_AS_ARG, _)};
                     return that;
                 }
 
@@ -140,12 +140,12 @@
     {
         template<typename Tag BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)>
         struct make_expr<Tag BOOST_PP_ENUM_TRAILING_PARAMS(N, A)>
-          : detail::make_expr_impl<Tag, N>::BOOST_NESTED_TEMPLATE 
result_<BOOST_PP_ENUM_PARAMS(N, A)>
+          : detail::make_expr_impl<Tag, N>::template 
result_<BOOST_PP_ENUM_PARAMS(N, A)>
         {};
     }
 
     template<typename Tag BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)>
-    typename detail::make_expr_impl<Tag, N>::BOOST_NESTED_TEMPLATE 
result_<BOOST_PP_ENUM_PARAMS(N, A)>::type
+    typename detail::make_expr_impl<Tag, N>::template 
result_<BOOST_PP_ENUM_PARAMS(N, const A)>::type
     make_expr(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a))
     {
         return detail::make_expr_impl<Tag, N>()(BOOST_PP_ENUM_PARAMS(N, a));


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to