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

Modified Files:
        domain.hpp expr.hpp extends.hpp operators.hpp proto_fwd.hpp 
Log Message:
move operator overloads out of proto namespace

Index: domain.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/domain.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- domain.hpp  16 Jun 2007 05:46:15 -0000      1.5
+++ domain.hpp  26 Jun 2007 17:03:00 -0000      1.6
@@ -30,6 +30,10 @@
         typedef void proto_is_domain_;
     };
 
+    struct default_domain
+      : domain<>
+    {};
+
     struct deduce_domain
       : domain<>
     {};

Index: expr.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/expr.hpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- expr.hpp    23 Jun 2007 06:26:31 -0000      1.37
+++ expr.hpp    26 Jun 2007 17:03:00 -0000      1.38
@@ -108,8 +108,11 @@
         #include BOOST_PP_ITERATE()
         }
 
+        namespace ops
+        {
     #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PROTO_MAX_ARITY, 
<boost/xpressive/proto/expr.hpp>))
     #include BOOST_PP_ITERATE()
+        }
 
     #undef BOOST_PROTO_ARG
     #undef BOOST_PROTO_VOID

Index: extends.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/extends.hpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- extends.hpp 16 Jun 2007 05:46:15 -0000      1.35
+++ extends.hpp 26 Jun 2007 17:03:00 -0000      1.36
@@ -219,109 +219,113 @@
         BOOST_PP_REPEAT_FROM_TO(0, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY), 
BOOST_PROTO_DEFINE_FUN_OP, (Expr, Derived, Domain))\
         /**/
 
-    /// \brief Empty type to be used as a dummy template parameter of
-    ///     POD expression wrappers. It allows argument-dependent lookup
-    ///     to find Proto's operator overloads.
-    ///
-    /// \c proto::is_proto_expr allows argument-dependent lookup
-    ///     to find Proto's operator overloads. For example:
-    ///
-    /// \code
-    /// template<typename T, typename Dummy = proto::is_proto_expr>
-    /// struct my_terminal
-    /// {
-    ///     BOOST_PROTO_EXTENDS(
-    ///         typename proto::terminal<T>::type
-    ///       , my_terminal<T>
-    ///       , default_domain
-    ///     )
-    /// };
-    ///
-    /// // ...
-    /// my_terminal<int> _1, _2;
-    /// _1 + _2; // OK, uses proto::operator+
-    /// \endcode
-    ///
-    /// Without the second \c Dummy template parameter, Proto's operator
-    /// overloads would not be considered by name lookup.
-    struct is_proto_expr
-    {};
-
-    /// \brief extends\<\> class template for adding behaviors to a proto 
expression template
-    ///
-    template<typename Expr, typename Derived, typename Domain, typename Tag>
-    struct extends
+    namespace ops
     {
-        extends()
-          : expr()
-        {}
+        /// \brief Empty type to be used as a dummy template parameter of
+        ///     POD expression wrappers. It allows argument-dependent lookup
+        ///     to find Proto's operator overloads.
+        ///
+        /// \c proto::is_proto_expr allows argument-dependent lookup
+        ///     to find Proto's operator overloads. For example:
+        ///
+        /// \code
+        /// template<typename T, typename Dummy = proto::is_proto_expr>
+        /// struct my_terminal
+        /// {
+        ///     BOOST_PROTO_EXTENDS(
+        ///         typename proto::terminal<T>::type
+        ///       , my_terminal<T>
+        ///       , default_domain
+        ///     )
+        /// };
+        ///
+        /// // ...
+        /// my_terminal<int> _1, _2;
+        /// _1 + _2; // OK, uses proto::operator+
+        /// \endcode
+        ///
+        /// Without the second \c Dummy template parameter, Proto's operator
+        /// overloads would not be considered by name lookup.
+        struct is_proto_expr
+        {};
 
-        extends(extends const &that)
-          : expr(that.expr)
-        {}
+        /// \brief extends\<\> class template for adding behaviors to a proto 
expression template
+        ///
+        template<typename Expr, typename Derived, typename Domain, typename 
Tag>
+        struct extends
+        {
+            extends()
+              : expr()
+            {}
 
-        extends(Expr const &expr_)
-          : expr(expr_)
-        {}
+            extends(extends const &that)
+              : expr(that.expr)
+            {}
 
-        BOOST_PROTO_EXTENDS(Expr, Derived, Domain)
-        BOOST_PROTO_EXTENDS_ASSIGN_CONST(Expr, Derived, Domain)
-        BOOST_PROTO_EXTENDS_SUBSCRIPT_CONST(Expr, Derived, Domain)
+            extends(Expr const &expr_)
+              : expr(expr_)
+            {}
 
-        // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
-        // nested preprocessor loops, use file iteration here to generate
-        // the operator() overloads, which is more efficient.
-        BOOST_PROTO_EXTENDS_FUNCTION_(Expr, Derived, Domain)
+            BOOST_PROTO_EXTENDS(Expr, Derived, Domain)
+            BOOST_PROTO_EXTENDS_ASSIGN_CONST(Expr, Derived, Domain)
+            BOOST_PROTO_EXTENDS_SUBSCRIPT_CONST(Expr, Derived, Domain)
 
-        /// INTERNAL ONLY
-        ///
-    #define BOOST_PP_LOCAL_MACRO(N) \
-        BOOST_PROTO_DEFINE_FUN_OP_CONST(1, N, (Expr, Derived, Domain))\
-        /**/
+            // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
+            // nested preprocessor loops, use file iteration here to generate
+            // the operator() overloads, which is more efficient.
+            BOOST_PROTO_EXTENDS_FUNCTION_(Expr, Derived, Domain)
 
-        /// INTERNAL ONLY
+            /// INTERNAL ONLY
+            ///
+        #define BOOST_PP_LOCAL_MACRO(N) \
+            BOOST_PROTO_DEFINE_FUN_OP_CONST(1, N, (Expr, Derived, Domain))\
+            /**/
+
+            /// INTERNAL ONLY
+            ///
+        #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY))
+        #include BOOST_PP_LOCAL_ITERATE()
+        };
+
+        /// \brief extends\<\> class template for adding behaviors to a proto 
expression template
         ///
-    #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY))
-    #include BOOST_PP_LOCAL_ITERATE()
-    };
+        template<typename Expr, typename Derived, typename Domain>
+        struct extends<Expr, Derived, Domain, tag::terminal>
+        {
+            extends()
+              : expr()
+            {}
 
-    /// \brief extends\<\> class template for adding behaviors to a proto 
expression template
-    ///
-    template<typename Expr, typename Derived, typename Domain>
-    struct extends<Expr, Derived, Domain, tag::terminal>
-    {
-        extends()
-          : expr()
-        {}
+            extends(extends const &that)
+              : expr(that.expr)
+            {}
 
-        extends(extends const &that)
-          : expr(that.expr)
-        {}
+            extends(Expr const &expr_)
+              : expr(expr_)
+            {}
 
-        extends(Expr const &expr_)
-          : expr(expr_)
-        {}
+            BOOST_PROTO_EXTENDS(Expr, Derived, Domain)
+            BOOST_PROTO_EXTENDS_ASSIGN(Expr, Derived, Domain)
+            BOOST_PROTO_EXTENDS_SUBSCRIPT(Expr, Derived, Domain)
 
-        BOOST_PROTO_EXTENDS(Expr, Derived, Domain)
-        BOOST_PROTO_EXTENDS_ASSIGN(Expr, Derived, Domain)
-        BOOST_PROTO_EXTENDS_SUBSCRIPT(Expr, Derived, Domain)
+            // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
+            // nested preprocessor loops, use file iteration here to generate
+            // the operator() overloads, which is more efficient.
+            BOOST_PROTO_EXTENDS_FUNCTION_(Expr, Derived, Domain)
 
-        // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
-        // nested preprocessor loops, use file iteration here to generate
-        // the operator() overloads, which is more efficient.
-        BOOST_PROTO_EXTENDS_FUNCTION_(Expr, Derived, Domain)
+            /// INTERNAL ONLY
+            ///
+        #define BOOST_PP_LOCAL_MACRO(N) \
+            BOOST_PROTO_DEFINE_FUN_OP(1, N, (Expr, Derived, Domain))\
+            /**/
 
-        /// INTERNAL ONLY
-        ///
-    #define BOOST_PP_LOCAL_MACRO(N) \
-        BOOST_PROTO_DEFINE_FUN_OP(1, N, (Expr, Derived, Domain))\
-        /**/
+            /// INTERNAL ONLY
+            ///
+        #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY))
+        #include BOOST_PP_LOCAL_ITERATE()
+        };
 
-        /// INTERNAL ONLY
-        ///
-    #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY))
-    #include BOOST_PP_LOCAL_ITERATE()
-    };
+    } // namespace ops
 
 }}
 

Index: operators.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/operators.hpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- operators.hpp       26 Jun 2007 05:44:10 -0000      1.35
+++ operators.hpp       26 Jun 2007 17:03:00 -0000      1.36
@@ -191,48 +191,51 @@
     }                                                                          
                     \
     /**/
 
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(+, tag::posit, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(-, tag::negate, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(*, tag::dereference, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(~, tag::complement, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(&, tag::address_of, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(!, tag::logical_not, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::pre_inc, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::pre_dec, 0)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::post_inc, 1)
-    BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::post_dec, 1)
+    namespace ops
+    {
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(+, tag::posit, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(-, tag::negate, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(*, tag::dereference, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(~, tag::complement, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(&, tag::address_of, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(!, tag::logical_not, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::pre_inc, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::pre_dec, 0)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::post_inc, 1)
+        BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::post_dec, 1)
 
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<, tag::shift_left)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>, tag::shift_right)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(*, tag::multiplies)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(/, tag::divides)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(%, tag::modulus)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(+, tag::plus)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(-, tag::minus)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(<, tag::less)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(>, tag::greater)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(<=, tag::less_equal)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(>=, tag::greater_equal)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(==, tag::equal_to)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(!=, tag::not_equal_to)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(||, tag::logical_or)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(&&, tag::logical_and)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(&, tag::bitwise_and)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(|, tag::bitwise_or)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(^, tag::bitwise_xor)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(BOOST_PP_COMMA(), tag::comma)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(->*, tag::mem_ptr)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<, tag::shift_left)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>, tag::shift_right)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(*, tag::multiplies)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(/, tag::divides)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(%, tag::modulus)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(+, tag::plus)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(-, tag::minus)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(<, tag::less)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(>, tag::greater)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(<=, tag::less_equal)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(>=, tag::greater_equal)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(==, tag::equal_to)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(!=, tag::not_equal_to)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(||, tag::logical_or)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(&&, tag::logical_and)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(&, tag::bitwise_and)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(|, tag::bitwise_or)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(^, tag::bitwise_xor)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(BOOST_PP_COMMA(), tag::comma)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(->*, tag::mem_ptr)
 
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<=, tag::shift_left_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>=, tag::shift_right_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(*=, tag::multilpies_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(/=, tag::divides_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(%=, tag::modulus_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(+=, tag::plus_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(-=, tag::minus_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(&=, tag::bitwise_and_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(|=, tag::bitwise_or_assign)
-    BOOST_PROTO_DEFINE_BINARY_OPERATOR(^=, tag::bitwise_xor_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<=, tag::shift_left_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>=, tag::shift_right_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(*=, tag::multilpies_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(/=, tag::divides_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(%=, tag::modulus_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(+=, tag::plus_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(-=, tag::minus_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(&=, tag::bitwise_and_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(|=, tag::bitwise_or_assign)
+        BOOST_PROTO_DEFINE_BINARY_OPERATOR(^=, tag::bitwise_xor_assign)
+    }
 
     /// if_else
     ///

Index: proto_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/proto_fwd.hpp,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -d -r1.80 -r1.81
--- proto_fwd.hpp       26 Jun 2007 00:16:04 -0000      1.80
+++ proto_fwd.hpp       26 Jun 2007 17:03:00 -0000      1.81
@@ -108,8 +108,49 @@
         struct function;
     }
 
-    template<typename Tag, typename Args, long Arity = Args::size>
-    struct expr;
+    namespace placeholder_detail_
+    {
+        struct _;
+    }
+
+    using placeholder_detail_::_;
+
+    struct default_generator;
+
+    template<template<typename> class Extends>
+    struct generator;
+
+    template<template<typename> class Extends>
+    struct pod_generator;
+
+    template<typename Generator = default_generator, typename Grammar = 
proto::_>
+    struct domain;
+
+    struct default_domain;
+
+    struct deduce_domain;
+
+    namespace ops
+    {
+        template<typename Tag, typename Args, long Arity = Args::size>
+        struct expr;
+
+        template<
+            typename Expr
+          , typename Derived
+          , typename Domain = default_domain
+          , typename Tag = typename Expr::proto_tag
+        >
+        struct extends;
+
+        struct is_proto_expr;
+    }
+
+    using ops::expr;
+
+    using ops::extends;
+
+    using ops::is_proto_expr;
 
     template<typename Expr>
     struct ref_;
@@ -167,31 +208,6 @@
     struct proto_ref_tag;
     struct proto_ref_iterator_tag;
 
-    namespace placeholder_detail_
-    {
-        struct _;
-    }
-
-    using placeholder_detail_::_;
-
-    struct default_generator;
-
-    template<template<typename> class Extends>
-    struct generator;
-
-    template<template<typename> class Extends>
-    struct pod_generator;
-
-    template<typename Generator = default_generator, typename Grammar = 
proto::_>
-    struct domain;
-
-    typedef domain<> default_domain;
-
-    struct deduce_domain;
-
-    template<typename Expr, typename Derived, typename Domain = 
default_domain, typename Tag = typename Expr::proto_tag>
-    struct extends;
-
     struct default_context;
 
     template<typename Derived>


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