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

Modified Files:
        proto_fwd.hpp traits.hpp 
Log Message:
fix construct transform, add pod_construct

Index: proto_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/proto_fwd.hpp,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -r1.86 -r1.87
--- proto_fwd.hpp       6 Jul 2007 08:54:43 -0000       1.86
+++ proto_fwd.hpp       9 Jul 2007 18:11:17 -0000       1.87
@@ -534,6 +534,9 @@
 
         template<typename Grammar, typename ConstructorFun>
         struct construct;
+
+        template<typename Grammar, typename ConstructorFun>
+        struct pod_construct;
     }
 
     namespace has_transformns_
@@ -551,6 +554,9 @@
     using has_transformns_::has_pass_through_transform;
 
     template<typename T>
+    struct is_transform;
+
+    template<typename T>
     struct is_extension;
 
     namespace exops

Index: traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/traits.hpp,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- traits.hpp  6 Jul 2007 08:54:43 -0000       1.63
+++ traits.hpp  9 Jul 2007 18:11:17 -0000       1.64
@@ -56,6 +56,15 @@
 
     namespace boost { namespace proto
     {
+        template<typename T>
+        struct is_transform
+          : mpl::false_
+        {};
+
+        template<>
+        struct is_transform<proto::_>
+          : mpl::true_
+        {};
 
         namespace result_of
         {
@@ -173,7 +182,6 @@
             struct right
               : unref<typename Expr::proto_arg1>
             {};
-
         }
 
         namespace detail
@@ -237,29 +245,29 @@
                 typedef U proto_arg1;
             };
 
-        #define BOOST_PROTO_UNARY_GENERATOR(Name)\
-            template<typename T>\
-            struct Name : has_pass_through_transform<Name<T> >\
-            {\
-                Name();\
-                typedef expr<proto::tag::Name, args1<T> > type;\
-                typedef type proto_base_expr;\
-                typedef proto::tag::Name proto_tag;\
-                typedef T proto_arg0;\
-            };\
+        #define BOOST_PROTO_UNARY_GENERATOR(Name)                              
                     \
+            template<typename T>                                               
                     \
+            struct Name : has_pass_through_transform<Name<T> >                 
                     \
+            {                                                                  
                     \
+                Name();                                                        
                     \
+                typedef expr<proto::tag::Name, args1<T> > type;                
                     \
+                typedef type proto_base_expr;                                  
                     \
+                typedef proto::tag::Name proto_tag;                            
                     \
+                typedef T proto_arg0;                                          
                     \
+            };                                                                 
                     \
             /**/
 
-        #define BOOST_PROTO_BINARY_GENERATOR(Name)\
-            template<typename T, typename U>\
-            struct Name : has_pass_through_transform<Name<T, U> >\
-            {\
-                Name();\
-                typedef expr<proto::tag::Name, args2<T, U> > type;\
-                typedef type proto_base_expr;\
-                typedef proto::tag::Name proto_tag;\
-                typedef T proto_arg0;\
-                typedef U proto_arg1;\
-            };\
+        #define BOOST_PROTO_BINARY_GENERATOR(Name)                             
                     \
+            template<typename T, typename U>                                   
                     \
+            struct Name : has_pass_through_transform<Name<T, U> >              
                     \
+            {                                                                  
                     \
+                Name();                                                        
                     \
+                typedef expr<proto::tag::Name, args2<T, U> > type;             
                     \
+                typedef type proto_base_expr;                                  
                     \
+                typedef proto::tag::Name proto_tag;                            
                     \
+                typedef T proto_arg0;                                          
                     \
+                typedef U proto_arg1;                                          
                     \
+            };                                                                 
                     \
             /**/
 
             BOOST_PROTO_UNARY_GENERATOR(posit)
@@ -306,12 +314,12 @@
             BOOST_PROTO_BINARY_GENERATOR(bitwise_or_assign)
             BOOST_PROTO_BINARY_GENERATOR(bitwise_xor_assign)
             BOOST_PROTO_BINARY_GENERATOR(subscript)
+        
+        } // namespace op
 
         #undef BOOST_PROTO_UNARY_GENERATOR
         #undef BOOST_PROTO_BINARY_GENERATOR
 
-        } // namespace op
-
     #define BOOST_PROTO_ARG(z, n, data)\
         typedef BOOST_PP_CAT(data, n) BOOST_PP_CAT(proto_arg, n);\
         /**/


-------------------------------------------------------------------------
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