$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r50242 - in branches/release: . boost/proto boost/proto/transform
From: eric_at_[hidden]
Date: 2008-12-11 12:58:44
Author: eric_niebler
Date: 2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
New Revision: 50242
URL: http://svn.boost.org/trac/boost/changeset/50242
Log:
Merged revisions 50169,50185 via svnmerge from 
https://svn.boost.org/svn/boost/trunk
........
  r50169 | eric_niebler | 2008-12-06 22:21:54 -0800 (Sat, 06 Dec 2008) | 1 line
  
  eliminate bogus gcc warning
........
  r50185 | eric_niebler | 2008-12-07 18:06:58 -0800 (Sun, 07 Dec 2008) | 1 line
  
  temporary hack to make proto work with C++0x
........
Properties modified: 
   branches/release/   (props changed)
Text files modified: 
   branches/release/boost/proto/expr.hpp                   |     2                                         
   branches/release/boost/proto/extends.hpp                |     2                                         
   branches/release/boost/proto/generate.hpp               |     9 +++                                     
   branches/release/boost/proto/matches.hpp                |    15 +++++                                   
   branches/release/boost/proto/repeat.hpp                 |    98 ++++++++++++++++++++------------------- 
   branches/release/boost/proto/traits.hpp                 |     7 ++                                      
   branches/release/boost/proto/transform/arg.hpp          |    29 ++++++++++-                             
   branches/release/boost/proto/transform/pass_through.hpp |     7 ++                                      
   8 files changed, 112 insertions(+), 57 deletions(-)
Modified: branches/release/boost/proto/expr.hpp
==============================================================================
--- branches/release/boost/proto/expr.hpp	(original)
+++ branches/release/boost/proto/expr.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -409,7 +409,7 @@
             template<typename Sig>
             struct result
             {
-                typedef typename result_of::funop<Sig, expr, default_domain>::type type;
+                typedef typename result_of::funop<Sig, expr, default_domain>::type const type;
             };
 
             /// Function call
Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp	(original)
+++ branches/release/boost/proto/extends.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -344,7 +344,7 @@
                           , proto_domain                                                            \
                         >::type                                                                     \
                     )                                                                               \
-                >::type                                                                             \
+                >::type const                                                                       \
             type;                                                                                   \
         };                                                                                          \
         /**/
Modified: branches/release/boost/proto/generate.hpp
==============================================================================
--- branches/release/boost/proto/generate.hpp	(original)
+++ branches/release/boost/proto/generate.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -12,6 +12,8 @@
     #define BOOST_PROTO_GENERATE_HPP_EAN_02_13_2007
 
     #include <boost/proto/detail/prefix.hpp>
+    #include <boost/config.hpp>
+    #include <boost/utility/result_of.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
     #include <boost/preprocessor/repetition/enum.hpp>
@@ -98,7 +100,12 @@
             /// \param expr A Proto expression
             /// \return expr
             template<typename Expr>
-            Expr const &operator ()(Expr const &expr) const
+            #ifdef BOOST_HAS_DECLTYPE
+            Expr
+            #else
+            Expr const &
+            #endif
+            operator ()(Expr const &expr) const
             {
                 return expr;
             }
Modified: branches/release/boost/proto/matches.hpp
==============================================================================
--- branches/release/boost/proto/matches.hpp	(original)
+++ branches/release/boost/proto/matches.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -12,6 +12,7 @@
     #define BOOST_PROTO_MATCHES_HPP_EAN_11_03_2006
 
     #include <boost/proto/detail/prefix.hpp> // must be first include
+    #include <boost/config.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/arithmetic/dec.hpp>
@@ -538,7 +539,12 @@
 
                     /// \param expr An expression
                     /// \return \c e
-                    typename impl::expr_param operator()(
+                    #ifdef BOOST_HAS_DECLTYPE
+                    result_type
+                    #else
+                    typename impl::expr_param 
+                    #endif
+                    operator()(
                         typename impl::expr_param e
                       , typename impl::state_param
                       , typename impl::data_param
@@ -573,7 +579,12 @@
                     /// \param e An expression
                     /// \pre <tt>matches\<Expr,not_\>::::value</tt> is \c true.
                     /// \return \c e
-                    typename impl::expr_param operator()(
+                    #ifdef BOOST_HAS_DECLTYPE
+                    result_type
+                    #else
+                    typename impl::expr_param 
+                    #endif
+                    operator()(
                         typename impl::expr_param e
                       , typename impl::state_param
                       , typename impl::data_param
Modified: branches/release/boost/proto/repeat.hpp
==============================================================================
--- branches/release/boost/proto/repeat.hpp	(original)
+++ branches/release/boost/proto/repeat.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -103,29 +103,31 @@
 ///
 /// Example:
 ///
-/// \code
-/// // Generate BOOST_PROTO_MAX_ARITY-1 overloads of the
-/// // following construct() function template.
-/// #define M0(N, typename_A, A_const_ref, A_const_ref_a, ref_a)      \
-/// template<typename T, typename_A(N)>                               \
-/// typename proto::result_of::make_expr<                             \
-///     proto::tag::function                                          \
-///   , construct_helper<T>                                           \
-///   , A_const_ref(N)                                                \
-/// >::type const                                                     \
-/// construct(A_const_ref_a(N))                                       \
-/// {                                                                 \
-///     return proto::make_expr<                                      \
-///         proto::tag::function                                      \
-///     >(                                                            \
-///         construct_helper<T>()                                     \
-///       , ref_a(N)                                                  \
-///     );                                                            \
-/// }
-/// BOOST_PROTO_REPEAT_FROM_TO(1, BOOST_PROTO_MAX_ARITY, M0)
-/// #undef M0
-/// \endcode
-///
+/** \code
+
+// Generate BOOST_PROTO_MAX_ARITY-1 overloads of the
+// following construct() function template.
+#define M0(N, typename_A, A_const_ref, A_const_ref_a, ref_a)      \ 
+template<typename T, typename_A(N)>                               \ 
+typename proto::result_of::make_expr<                             \ 
+    proto::tag::function                                          \ 
+  , construct_helper<T>                                           \ 
+  , A_const_ref(N)                                                \ 
+>::type const                                                     \ 
+construct(A_const_ref_a(N))                                       \ 
+{                                                                 \ 
+    return proto::make_expr<                                      \ 
+        proto::tag::function                                      \ 
+    >(                                                            \ 
+        construct_helper<T>()                                     \ 
+      , ref_a(N)                                                  \ 
+    );                                                            \ 
+}
+BOOST_PROTO_REPEAT_FROM_TO(1, BOOST_PROTO_MAX_ARITY, M0)
+#undef M0
+
+\endcode
+**/
 /// The above invocation of BOOST_PROTO_REPEAT_FROM_TO()  will generate
 /// the following code: 
 ///
@@ -211,30 +213,32 @@
 ///
 /// Example:
 ///
-/// \code
-/// // Generate BOOST_PROTO_MAX_ARITY-1 overloads of the
-/// // following construct() function template.
-/// #define BOOST_PROTO_LOCAL_MACRO(N, typename_A, A_const_ref,       \
-///   A_const_ref_a, ref_a)                                           \
-/// template<typename T, typename_A(N)>                               \
-/// typename proto::result_of::make_expr<                             \
-///     proto::tag::function                                          \
-///   , construct_helper<T>                                           \
-///   , A_const_ref(N)                                                \
-/// >::type const                                                     \
-/// construct(A_const_ref_a(N))                                       \
-/// {                                                                 \
-///     return proto::make_expr<                                      \
-///         proto::tag::function                                      \
-///     >(                                                            \
-///         construct_helper<T>()                                     \
-///       , ref_a(N)                                                  \
-///     );                                                            \
-/// }
-/// #define BOOST_PROTO_LOCAL_LIMITS (1, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY))
-/// #include BOOST_PROTO_LOCAL_ITERATE()
-/// \endcode
-///
+/** \code
+
+// Generate BOOST_PROTO_MAX_ARITY-1 overloads of the
+// following construct() function template.
+#define BOOST_PROTO_LOCAL_MACRO(N, typename_A, A_const_ref,       \ 
+  A_const_ref_a, ref_a)                                           \ 
+template<typename T, typename_A(N)>                               \ 
+typename proto::result_of::make_expr<                             \ 
+    proto::tag::function                                          \ 
+  , construct_helper<T>                                           \ 
+  , A_const_ref(N)                                                \ 
+>::type const                                                     \ 
+construct(A_const_ref_a(N))                                       \ 
+{                                                                 \ 
+    return proto::make_expr<                                      \ 
+        proto::tag::function                                      \ 
+    >(                                                            \ 
+        construct_helper<T>()                                     \ 
+      , ref_a(N)                                                  \ 
+    );                                                            \ 
+}
+#define BOOST_PROTO_LOCAL_LIMITS (1, BOOST_PP_DEC(BOOST_PROTO_MAX_ARITY))
+#include BOOST_PROTO_LOCAL_ITERATE()
+
+\endcode
+**/
 /// The above inclusion of BOOST_PROTO_LOCAL_ITERATE() will generate
 /// the following code: 
 ///
Modified: branches/release/boost/proto/traits.hpp
==============================================================================
--- branches/release/boost/proto/traits.hpp	(original)
+++ branches/release/boost/proto/traits.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -543,7 +543,12 @@
                     /// \pre <tt>matches\<Expr, terminal\<T\> \>::::value</tt> is \c true.
                     /// \return \c e
                     /// \throw nothrow
-                    typename impl::expr_param operator ()(
+                    #ifdef BOOST_HAS_DECLTYPE
+                    result_type
+                    #else
+                    typename impl::expr_param
+                    #endif
+                    operator ()(
                         typename impl::expr_param e
                       , typename impl::state_param
                       , typename impl::data_param
Modified: branches/release/boost/proto/transform/arg.hpp
==============================================================================
--- branches/release/boost/proto/transform/arg.hpp	(original)
+++ branches/release/boost/proto/transform/arg.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -39,7 +39,12 @@
             /// \param e The current expression.
             /// \return \c e
             /// \throw nothrow
-            typename impl::expr_param operator()(
+            #ifdef BOOST_HAS_DECLTYPE
+            result_type
+            #else
+            typename impl::expr_param 
+            #endif
+            operator()(
                 typename impl::expr_param e
               , typename impl::state_param
               , typename impl::data_param
@@ -71,7 +76,12 @@
             /// \param s The current state.
             /// \return \c s
             /// \throw nothrow
-            typename impl::state_param operator ()(
+            #ifdef BOOST_HAS_DECLTYPE
+            result_type
+            #else
+            typename impl::state_param 
+            #endif
+            operator ()(
                 typename impl::expr_param
               , typename impl::state_param s
               , typename impl::data_param
@@ -104,7 +114,12 @@
             /// \param d The current data.
             /// \return \c d
             /// \throw nothrow
-            typename impl::data_param operator ()(
+            #ifdef BOOST_HAS_DECLTYPE
+            result_type
+            #else
+            typename impl::data_param 
+            #endif
+            operator ()(
                 typename impl::expr_param
               , typename impl::state_param
               , typename impl::data_param d
@@ -140,7 +155,11 @@
             /// \param e The current expression.
             /// \return <tt>proto::child_c\<N\>(e)</tt>
             /// \throw nothrow
+            #ifdef BOOST_HAS_DECLTYPE
+            result_type
+            #else
             typename result_of::child_c<typename impl::expr_param, N>::type
+            #endif
             operator ()(
                 typename impl::expr_param e
               , typename impl::state_param
@@ -176,7 +195,11 @@
             /// \param e The current expression.
             /// \return <tt>proto::value(e)</tt>
             /// \throw nothrow
+            #ifdef BOOST_HAS_DECLTYPE
+            result_type
+            #else
             typename result_of::value<typename impl::expr_param>::type
+            #endif
             operator ()(
                 typename impl::expr_param e
               , typename impl::state_param
Modified: branches/release/boost/proto/transform/pass_through.hpp
==============================================================================
--- branches/release/boost/proto/transform/pass_through.hpp	(original)
+++ branches/release/boost/proto/transform/pass_through.hpp	2008-12-11 12:58:43 EST (Thu, 11 Dec 2008)
@@ -69,7 +69,12 @@
                 /// \param e An expression
                 /// \return \c e
                 /// \throw nothrow
-                typename pass_through_impl::expr_param operator()(
+                #ifdef BOOST_HAS_DECLTYPE
+                result_type
+                #else
+                typename pass_through_impl::expr_param 
+                #endif
+                operator()(
                     typename pass_through_impl::expr_param e
                   , typename pass_through_impl::state_param
                   , typename pass_through_impl::data_param