Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r61073 - in branches/release: . boost boost/algorithm/string boost/archive boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/graph boost/interprocess boost/intrusive boost/math boost/numeric/ublas boost/program_options boost/property_tree boost/proto boost/python boost/range boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/utility boost/uuid boost/variant boost/wave doc libs libs/array/doc libs/array/test libs/bimap libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/interprocess libs/intrusive libs/math libs/math/doc/sf_and_dist libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/proto/doc libs/python libs/range libs/regex libs/regex/doc libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/utility libs/uuid libs/wave more people status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/regression tools/release tools/wave wiki
From: eric_at_[hidden]
Date: 2010-04-05 14:52:10


Author: eric_niebler
Date: 2010-04-05 14:52:10 EDT (Mon, 05 Apr 2010)
New Revision: 61073
URL: http://svn.boost.org/trac/boost/changeset/61073

Log:
Merged revisions 61055-61056 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r61055 | eric_niebler | 2010-04-04 16:09:58 -0700 (Sun, 04 Apr 2010) | 1 line
  
  try to get proto working on msvc-7.1 again, misc clean-up
........
  r61056 | eric_niebler | 2010-04-04 16:22:56 -0700 (Sun, 04 Apr 2010) | 1 line
  
  acknowledge Dave A. for responding to my call for help with msvc-7.1
........

Properties modified:
   branches/release/ (props changed)
   branches/release/CMakeLists.txt (props changed)
   branches/release/INSTALL (props changed)
   branches/release/Jamroot (props changed)
   branches/release/LICENSE_1_0.txt (props changed)
   branches/release/boost/ (props changed)
   branches/release/boost-build.jam (props changed)
   branches/release/boost.css (props changed)
   branches/release/boost.png (props changed)
   branches/release/boost/algorithm/string/ (props changed)
   branches/release/boost/archive/ (props changed)
   branches/release/boost/array.hpp (props changed)
   branches/release/boost/bimap/ (props changed)
   branches/release/boost/config/ (props changed)
   branches/release/boost/detail/ (props changed)
   branches/release/boost/filesystem/ (props changed)
   branches/release/boost/functional/hash/ (props changed)
   branches/release/boost/fusion/ (props changed)
   branches/release/boost/graph/ (props changed)
   branches/release/boost/interprocess/ (props changed)
   branches/release/boost/intrusive/ (props changed)
   branches/release/boost/math/ (props changed)
   branches/release/boost/numeric/ublas/ (props changed)
   branches/release/boost/program_options/ (props changed)
   branches/release/boost/property_tree/ (props changed)
   branches/release/boost/python/ (props changed)
   branches/release/boost/range/ (props changed)
   branches/release/boost/regex/ (props changed)
   branches/release/boost/serialization/ (props changed)
   branches/release/boost/signals/ (props changed)
   branches/release/boost/signals2/ (props changed)
   branches/release/boost/spirit/ (props changed)
   branches/release/boost/spirit/home/ (props changed)
   branches/release/boost/spirit/home/karma/ (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp (props changed)
   branches/release/boost/statechart/ (props changed)
   branches/release/boost/system/ (props changed)
   branches/release/boost/thread/ (props changed)
   branches/release/boost/thread.hpp (props changed)
   branches/release/boost/tr1/ (props changed)
   branches/release/boost/type_traits/ (props changed)
   branches/release/boost/utility/ (props changed)
   branches/release/boost/utility/value_init.hpp (props changed)
   branches/release/boost/uuid/ (props changed)
   branches/release/boost/variant/ (props changed)
   branches/release/boost/version.hpp (props changed)
   branches/release/boost/wave/ (props changed)
   branches/release/bootstrap.bat (props changed)
   branches/release/bootstrap.sh (props changed)
   branches/release/doc/ (props changed)
   branches/release/index.htm (props changed)
   branches/release/index.html (props changed)
   branches/release/libs/ (props changed)
   branches/release/libs/array/doc/array.xml (props changed)
   branches/release/libs/array/test/array0.cpp (props changed)
   branches/release/libs/bimap/ (props changed)
   branches/release/libs/config/ (props changed)
   branches/release/libs/filesystem/ (props changed)
   branches/release/libs/functional/hash/ (props changed)
   branches/release/libs/fusion/ (props changed)
   branches/release/libs/graph_parallel/ (props changed)
   branches/release/libs/interprocess/ (props changed)
   branches/release/libs/intrusive/ (props changed)
   branches/release/libs/libraries.htm (props changed)
   branches/release/libs/maintainers.txt (props changed)
   branches/release/libs/math/ (props changed)
   branches/release/libs/math/doc/sf_and_dist/ (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
   branches/release/libs/numeric/ublas/ (props changed)
   branches/release/libs/numeric/ublas/doc/ (props changed)
   branches/release/libs/program_options/ (props changed)
   branches/release/libs/property_tree/ (props changed)
   branches/release/libs/python/ (props changed)
   branches/release/libs/range/ (props changed)
   branches/release/libs/regex/ (props changed)
   branches/release/libs/regex/doc/ (props changed)
   branches/release/libs/serialization/ (props changed)
   branches/release/libs/signals/ (props changed)
   branches/release/libs/signals2/ (props changed)
   branches/release/libs/spirit/ (props changed)
   branches/release/libs/spirit/classic/example/ (props changed)
   branches/release/libs/spirit/doc/ (props changed)
   branches/release/libs/spirit/example/ (props changed)
   branches/release/libs/spirit/phoenix/ (props changed)
   branches/release/libs/spirit/test/ (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp (props changed)
   branches/release/libs/statechart/ (props changed)
   branches/release/libs/static_assert/ (props changed)
   branches/release/libs/system/ (props changed)
   branches/release/libs/thread/ (props changed)
   branches/release/libs/timer/ (props changed)
   branches/release/libs/tr1/ (props changed)
   branches/release/libs/type_traits/ (props changed)
   branches/release/libs/utility/ (props changed)
   branches/release/libs/utility/swap.html (props changed)
   branches/release/libs/utility/value_init.htm (props changed)
   branches/release/libs/utility/value_init_test.cpp (props changed)
   branches/release/libs/uuid/ (props changed)
   branches/release/libs/wave/ (props changed)
   branches/release/more/ (props changed)
   branches/release/people/ (props changed)
   branches/release/rst.css (props changed)
   branches/release/status/ (props changed)
   branches/release/status/Jamfile.v2 (props changed)
   branches/release/tools/ (props changed)
   branches/release/tools/bcp/ (props changed)
   branches/release/tools/boostbook/ (props changed)
   branches/release/tools/build/v2/ (props changed)
   branches/release/tools/inspect/ (props changed)
   branches/release/tools/regression/ (props changed)
   branches/release/tools/release/ (props changed)
   branches/release/tools/wave/ (props changed)
   branches/release/wiki/ (props changed)
Text files modified:
   branches/release/boost/proto/extends.hpp | 142 ++++++++++++++++++---------------------
   branches/release/libs/proto/doc/acknowledgements.qbk | 4 +
   2 files changed, 68 insertions(+), 78 deletions(-)

Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp (original)
+++ branches/release/boost/proto/extends.hpp 2010-04-05 14:52:10 EDT (Mon, 05 Apr 2010)
@@ -10,6 +10,8 @@
 #define BOOST_PROTO_EXTENDS_HPP_EAN_11_1_2006
 
 #include <cstddef> // for offsetof
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
 #include <boost/preprocessor/facilities/empty.hpp>
 #include <boost/preprocessor/tuple/elem.hpp>
 #include <boost/preprocessor/control/if.hpp>
@@ -54,11 +56,11 @@
 
     /// INTERNAL ONLY
     ///
- #define BOOST_PROTO_CONST0
+ #define BOOST_PROTO_CONST() const
 
     /// INTERNAL ONLY
     ///
- #define BOOST_PROTO_CONST1 const
+ #define BOOST_PROTO_TYPENAME() typename
 
     /// INTERNAL ONLY
     ///
@@ -75,22 +77,22 @@
         typename boost::result_of< \
             proto_domain( \
                 typename boost::proto::result_of::BOOST_PP_CAT(funop, N)< \
- proto_derived_expr BOOST_PROTO_CONST ## Const \
+ proto_derived_expr Const() \
                   , proto_domain \
                     BOOST_PP_ENUM_TRAILING_PARAMS_Z(Z, N, const A) \
>::type \
             ) \
>::type const \
- operator ()(BOOST_PP_ENUM_BINARY_PARAMS_Z(Z, N, A, const &a)) BOOST_PROTO_CONST ## Const \
+ operator ()(BOOST_PP_ENUM_BINARY_PARAMS_Z(Z, N, A, const &a)) Const() \
         { \
             typedef boost::proto::result_of::BOOST_PP_CAT(funop, N)< \
- proto_derived_expr BOOST_PROTO_CONST ## Const \
+ proto_derived_expr Const() \
               , proto_domain \
                 BOOST_PP_ENUM_TRAILING_PARAMS_Z(Z, N, const A) \
> funop; \
             return proto_domain()( \
                 funop::call( \
- *static_cast<proto_derived_expr BOOST_PROTO_CONST ## Const *>(this) \
+ *static_cast<proto_derived_expr Const() *>(this) \
                     BOOST_PP_ENUM_TRAILING_PARAMS_Z(Z, N, a) \
                 ) \
             ); \
@@ -104,22 +106,22 @@
         typename boost::result_of< \
             proto_domain( \
                 typename boost::proto::result_of::funop< \
- proto_derived_expr BOOST_PROTO_CONST ## Const(A const &...) \
+ proto_derived_expr Const()(A const &...) \
                   , proto_derived_expr \
                   , proto_domain \
>::type \
             ) \
>::type const \
- operator ()(A const &...a) BOOST_PROTO_CONST ## Const \
+ operator ()(A const &...a) Const() \
         { \
             typedef boost::proto::result_of::funop< \
- proto_derived_expr BOOST_PROTO_CONST ## Const(A const &...) \
+ proto_derived_expr Const()(A const &...) \
               , proto_derived_expr \
               , proto_domain \
> funop; \
             return proto_domain()( \
                 funop::call( \
- *static_cast<proto_derived_expr BOOST_PROTO_CONST ## Const *>(this) \
+ *static_cast<proto_derived_expr Const() *>(this) \
                   , a... \
                 ) \
             ); \
@@ -129,12 +131,14 @@
     /// INTERNAL ONLY
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_CONST(Z, N, DATA) \
- BOOST_PROTO_DEFINE_FUN_OP_IMPL_(Z, N, DATA, 1)
+ BOOST_PROTO_DEFINE_FUN_OP_IMPL_(Z, N, DATA, BOOST_PROTO_CONST) \
+ /**/
 
     /// INTERNAL ONLY
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_NON_CONST(Z, N, DATA) \
- BOOST_PROTO_DEFINE_FUN_OP_IMPL_(Z, N, DATA, 0)
+ BOOST_PROTO_DEFINE_FUN_OP_IMPL_(Z, N, DATA, BOOST_PP_EMPTY) \
+ /**/
 
     /// INTERNAL ONLY
     ///
@@ -194,37 +198,7 @@
         typedef void proto_is_aggregate_; \
         /**< INTERNAL ONLY */
 
- #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_(This, Typename) \
- BOOST_PROTO_DISABLE_MSVC_C4522 \
- Typename() boost::result_of< \
- Typename() This::proto_domain( \
- boost::proto::expr< \
- boost::proto::tag::assign \
- , boost::proto::list2< \
- This & \
- , This & \
- > \
- , 2 \
- > \
- ) \
- >::type const \
- operator =(This &a) \
- { \
- typedef boost::proto::expr< \
- boost::proto::tag::assign \
- , boost::proto::list2< \
- This & \
- , This & \
- > \
- , 2 \
- > that_type; \
- that_type that = { \
- *this \
- , a \
- }; \
- return Typename() This::proto_domain()(that); \
- } \
- \
+ #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, Const, Typename) \
         BOOST_PROTO_DISABLE_MSVC_C4522 \
         Typename() boost::result_of< \
             Typename() This::proto_domain( \
@@ -232,19 +206,19 @@
                     boost::proto::tag::assign \
                   , boost::proto::list2< \
                         This & \
- , This const & \
+ , This Const() & \
> \
                   , 2 \
> \
             ) \
>::type const \
- operator =(This const &a) \
+ operator =(This Const() &a) \
         { \
             typedef boost::proto::expr< \
                 boost::proto::tag::assign \
               , boost::proto::list2< \
                     This & \
- , This const & \
+ , This Const() & \
> \
               , 2 \
> that_type; \
@@ -256,6 +230,19 @@
         } \
         /**/
 
+ // MSVC 8.0 and higher seem to need copy-assignment operator to be overloaded on *both*
+ // const and non-const rhs arguments.
+ #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1600)) && (BOOST_MSVC > 1310)
+ #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_(This, Typename) \
+ BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, BOOST_PP_EMPTY, Typename) \
+ BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, BOOST_PROTO_CONST, Typename) \
+ /**/
+ #else
+ #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_(This, Typename) \
+ BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, BOOST_PROTO_CONST, Typename) \
+ /**/
+ #endif
+
         /// INTERNAL ONLY
         ///
     #define BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(Const) \
@@ -265,25 +252,25 @@
                 boost::proto::expr< \
                     boost::proto::tag::assign \
                   , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                       , typename boost::proto::result_of::as_child<A, proto_domain>::type \
> \
                   , 2 \
> \
             ) \
>::type const \
- operator =(A &a) BOOST_PROTO_CONST ## Const \
+ operator =(A &a) Const() \
         { \
             typedef boost::proto::expr< \
                 boost::proto::tag::assign \
               , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                   , typename boost::proto::result_of::as_child<A, proto_domain>::type \
> \
               , 2 \
> that_type; \
             that_type that = { \
- *static_cast<proto_derived_expr BOOST_PROTO_CONST ## Const *>(this) \
+ *static_cast<proto_derived_expr Const() *>(this) \
               , boost::proto::as_child<proto_domain>(a) \
             }; \
             return proto_domain()(that); \
@@ -295,25 +282,25 @@
                 boost::proto::expr< \
                     boost::proto::tag::assign \
                   , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                       , typename boost::proto::result_of::as_child<A const, proto_domain>::type \
> \
                   , 2 \
> \
             ) \
>::type const \
- operator =(A const &a) BOOST_PROTO_CONST ## Const \
+ operator =(A const &a) Const() \
         { \
             typedef boost::proto::expr< \
                 boost::proto::tag::assign \
               , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                   , typename boost::proto::result_of::as_child<A const, proto_domain>::type \
> \
               , 2 \
> that_type; \
             that_type that = { \
- *static_cast<proto_derived_expr BOOST_PROTO_CONST ## Const *>(this) \
+ *static_cast<proto_derived_expr Const() *>(this) \
               , boost::proto::as_child<proto_domain>(a) \
             }; \
             return proto_domain()(that); \
@@ -321,16 +308,16 @@
         /**/
 
     #define BOOST_PROTO_EXTENDS_ASSIGN_CONST_() \
- BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(1) \
+ BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(BOOST_PROTO_CONST) \
         /**/
 
     #define BOOST_PROTO_EXTENDS_ASSIGN_NON_CONST_() \
- BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(0) \
+ BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(BOOST_PP_EMPTY) \
         /**/
 
     #define BOOST_PROTO_EXTENDS_ASSIGN_() \
- BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(0) \
- BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(1) \
+ BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(BOOST_PP_EMPTY) \
+ BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(BOOST_PROTO_CONST) \
         /**/
 
     #define BOOST_PROTO_EXTENDS_ASSIGN_CONST() \
@@ -357,25 +344,25 @@
                 boost::proto::expr< \
                     boost::proto::tag::subscript \
                   , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                       , typename boost::proto::result_of::as_child<A, proto_domain>::type \
> \
                   , 2 \
> \
             ) \
>::type const \
- operator [](A &a) BOOST_PROTO_CONST ## Const \
+ operator [](A &a) Const() \
         { \
             typedef boost::proto::expr< \
                 boost::proto::tag::subscript \
               , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                   , typename boost::proto::result_of::as_child<A, proto_domain>::type \
> \
               , 2 \
> that_type; \
             that_type that = { \
- *static_cast<proto_derived_expr BOOST_PROTO_CONST ## Const *>(this) \
+ *static_cast<proto_derived_expr Const() *>(this) \
               , boost::proto::as_child<proto_domain>(a) \
             }; \
             return proto_domain()(that); \
@@ -387,25 +374,25 @@
                 boost::proto::expr< \
                     boost::proto::tag::subscript \
                   , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                       , typename boost::proto::result_of::as_child<A const, proto_domain>::type \
> \
                   , 2 \
> \
             ) \
>::type const \
- operator [](A const &a) BOOST_PROTO_CONST ## Const \
+ operator [](A const &a) Const() \
         { \
             typedef boost::proto::expr< \
                 boost::proto::tag::subscript \
               , boost::proto::list2< \
- proto_derived_expr BOOST_PROTO_CONST ## Const & \
+ proto_derived_expr Const() & \
                   , typename boost::proto::result_of::as_child<A const, proto_domain>::type \
> \
               , 2 \
> that_type; \
             that_type that = { \
- *static_cast<proto_derived_expr BOOST_PROTO_CONST ## Const *>(this) \
+ *static_cast<proto_derived_expr Const() *>(this) \
               , boost::proto::as_child<proto_domain>(a) \
             }; \
             return proto_domain()(that); \
@@ -413,10 +400,12 @@
         /**/
 
     #define BOOST_PROTO_EXTENDS_SUBSCRIPT_CONST() \
- BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(1)
+ BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(BOOST_PROTO_CONST) \
+ /**/
 
     #define BOOST_PROTO_EXTENDS_SUBSCRIPT_NON_CONST() \
- BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(0)
+ BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(BOOST_PP_EMPTY) \
+ /**/
 
     #define BOOST_PROTO_EXTENDS_SUBSCRIPT() \
         BOOST_PROTO_EXTENDS_SUBSCRIPT_CONST() \
@@ -446,18 +435,18 @@
     #ifndef BOOST_NO_VARIADIC_TEMPLATES
         #define BOOST_PROTO_EXTENDS_FUNCTION_CONST() \
             BOOST_PROTO_EXTENDS_FUNCTION_() \
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1) \
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PROTO_CONST) \
             /**/
 
         #define BOOST_PROTO_EXTENDS_FUNCTION_NON_CONST() \
             BOOST_PROTO_EXTENDS_FUNCTION_() \
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(0) \
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PP_EMPTY) \
             /**/
 
         #define BOOST_PROTO_EXTENDS_FUNCTION() \
             BOOST_PROTO_EXTENDS_FUNCTION_() \
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(0) \
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1) \
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PP_EMPTY) \
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PROTO_CONST) \
             /**/
     #else
         #define BOOST_PROTO_EXTENDS_FUNCTION_CONST() \
@@ -510,9 +499,6 @@
         BOOST_PROTO_EXTENDS_COPY_ASSIGN_(Derived, BOOST_PP_EMPTY) \
         /**/
 
- /// INTERNAL ONLY
- #define BOOST_PROTO_TYPENAME() typename
-
     namespace exprns_
     {
         /// \brief Empty type to be used as a dummy template parameter of
@@ -576,7 +562,7 @@
             BOOST_PROTO_EXTENDS_FUNCTION_()
 
         #ifndef BOOST_NO_VARIADIC_TEMPLATES
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PROTO_CONST)
         #else
             /// INTERNAL ONLY
             ///
@@ -620,8 +606,8 @@
             BOOST_PROTO_EXTENDS_FUNCTION_()
 
         #ifndef BOOST_NO_VARIADIC_TEMPLATES
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(0)
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PP_EMPTY)
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(BOOST_PROTO_CONST)
         #else
 
             /// INTERNAL ONLY

Modified: branches/release/libs/proto/doc/acknowledgements.qbk
==============================================================================
--- branches/release/libs/proto/doc/acknowledgements.qbk (original)
+++ branches/release/libs/proto/doc/acknowledgements.qbk 2010-04-05 14:52:10 EDT (Mon, 05 Apr 2010)
@@ -15,6 +15,10 @@
 Thanks to Daniel James for providing a patch to remove the dependence on
 deprecated configuration macros for C++0x features.
 
+Thanks to Dave Abrahams for an especially detailed review, and for making a
+VM with msvc-7.1 available so I could track down portability issues on that
+compiler.
+
 Thanks also to the developers of _PETE_. I found many good ideas there.
 
 [endsect]


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk