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

Modified Files:
        make_expr.hpp proto_fwd.hpp 
Log Message:
fixes to make proto work with 1.34

Index: make_expr.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/make_expr.hpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- make_expr.hpp       25 Jun 2007 05:39:40 -0000      1.24
+++ make_expr.hpp       28 Jun 2007 02:29:19 -0000      1.25
@@ -12,6 +12,7 @@
     #define BOOST_PROTO_MAKE_EXPR_HPP_EAN_04_01_2005
 
     #include <boost/xpressive/proto/detail/prefix.hpp>
+    #include <boost/version.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/control/if.hpp>
     #include <boost/preprocessor/control/expr_if.hpp>
@@ -49,9 +50,27 @@
     #include <boost/xpressive/proto/traits.hpp>
     #include <boost/xpressive/proto/domain.hpp>
     #include <boost/xpressive/proto/generate.hpp>
-    #include <boost/fusion/sequence/intrinsic/at.hpp>
-    #include <boost/fusion/sequence/intrinsic/value_at.hpp>
-    #include <boost/fusion/sequence/intrinsic/size.hpp>
+    #if BOOST_VERSION >= 103500
+    # include <boost/fusion/sequence/intrinsic/at.hpp>
+    # include <boost/fusion/sequence/intrinsic/value_at.hpp>
+    # include <boost/fusion/sequence/intrinsic/size.hpp>
+    namespace boost { namespace proto { namespace detail
+    {
+        namespace fusion_ = fusion;
+    }}}
+    #else
+    # include <boost/spirit/fusion/sequence/at.hpp>
+    # include <boost/spirit/fusion/sequence/value_at.hpp>
+    # include <boost/spirit/fusion/sequence/size.hpp>
+    namespace boost { namespace proto { namespace detail { namespace fusion_
+    {
+        namespace result_of = fusion::meta;
+        template<int N, typename Seq>
+        typename result_of::at_c<Seq, N>::type at_c(Seq &seq) { return 
fusion::at<N>(seq); }
+        template<int N, typename Seq>
+        typename result_of::at_c<Seq const, N>::type at_c(Seq const &seq) { 
return fusion::at<N>(seq); }
+    }}}}
+    #endif
     #include <boost/xpressive/proto/detail/suffix.hpp>
 
     /// INTERNAL ONLY
@@ -73,16 +92,16 @@
 
     /// INTERNAL ONLY
     ///
-    #define BOOST_PROTO_AT_TYPE(Z, N, DATA)                                    
                     \
+    # define BOOST_PROTO_AT_TYPE(Z, N, DATA)                                   
                     \
         typename remove_reference<                                             
                     \
-            typename fusion::result_of::value_at_c<BOOST_PP_TUPLE_ELEM(2, 0, 
DATA), N >::type       \
+            typename 
detail::fusion_::result_of::value_at_c<BOOST_PP_TUPLE_ELEM(2, 0, DATA), N 
>::type       \
         >::type                                                                
                     \
         /**/
 
     /// INTERNAL ONLY
     ///
-    #define BOOST_PROTO_AT(Z, N, DATA)                                         
                     \
-        fusion::at_c<N >(BOOST_PP_TUPLE_ELEM(2, 0, DATA))                      
                     \
+    # define BOOST_PROTO_AT(Z, N, DATA)                                        
                     \
+        detail::fusion_::at_c<N >(BOOST_PP_TUPLE_ELEM(2, 0, DATA))             
                              \
         /**/
 
     /// INTERNAL ONLY
@@ -358,14 +377,14 @@
             {
                 typedef expr<
                     tag::terminal
-                  , args0<typename fusion::result_of::value_at_c<Sequence, 
0>::type>
+                  , args0<typename fusion_::result_of::value_at_c<Sequence, 
0>::type>
                 > expr_type;
 
                 typedef typename Domain::template apply<expr_type>::type type;
 
                 static type const call(Sequence const &sequence)
                 {
-                    expr_type that = {fusion::at_c<0>(sequence)};
+                    expr_type that = {fusion_::at_c<0>(sequence)};
                     return Domain::make(that);
                 }
             };
@@ -417,7 +436,7 @@
                     Tag
                   , deduce_domain
                   , Sequence
-                  , fusion::result_of::size<Sequence>::type::value
+                  , detail::fusion_::result_of::size<Sequence>::type::value
                 >
             {};
 
@@ -427,7 +446,7 @@
                     Tag
                   , Domain
                   , Sequence
-                  , fusion::result_of::size<Sequence>::type::value
+                  , detail::fusion_::result_of::size<Sequence>::type::value
                 >
             {};
 

Index: proto_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/proto_fwd.hpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -d -r1.81 -r1.82
--- proto_fwd.hpp       26 Jun 2007 17:03:00 -0000      1.81
+++ proto_fwd.hpp       28 Jun 2007 02:29:19 -0000      1.82
@@ -53,6 +53,11 @@
         {
             dont_care(...);
         };
+
+        template<typename T>
+        struct remove_cv_ref
+          : remove_cv<typename remove_reference<T>::type>
+        {};
     }
 
     
///////////////////////////////////////////////////////////////////////////////
@@ -155,23 +160,6 @@
     template<typename Expr>
     struct ref_;
 
-    struct identity_transform;
-
-    struct arg_transform;
-
-    struct left_transform;
-
-    struct right_transform;
-
-    template<typename Always>
-    struct always_transform;
-
-    template<typename First, typename Second>
-    struct compose_transforms;
-
-    template<typename Predicate, typename IfTransform, typename ElseTransform 
= identity_transform>
-    struct conditional_transform;
-
     template<typename Expr, typename Grammar>
     struct matches;
 
@@ -270,14 +258,6 @@
         struct unpack_expr;
     }
 
-    namespace detail
-    {
-        template<typename T>
-        struct remove_cv_ref
-          : remove_cv<typename remove_reference<T>::type>
-        {};
-    }
-
     template<typename Expr>
     struct tag_of;
 
@@ -457,6 +437,9 @@
         struct list;
 
         template<typename Grammar>
+        struct tail;
+
+        template<typename Grammar>
         struct pass_through;
 
         template<typename Grammar, typename ConstructorFun>


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