$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r58697 - in branches/release: . boost boost/algorithm/string boost/archive boost/config boost/filesystem boost/functional/hash boost/fusion boost/graph boost/integer boost/interprocess boost/intrusive boost/math boost/numeric/ublas boost/program_options boost/property_tree boost/proto boost/proto/context boost/proto/transform boost/python boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/system boost/thread boost/tr1 boost/type_traits boost/utility boost/variant boost/wave doc libs libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/math libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python 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/static_assert libs/system libs/thread libs/thread/doc libs/timer libs/tr1 libs/type_traits libs/utility libs/wave more people status tools tools/boostbook tools/build/v2 tools/inspect tools/regression tools/release tools/wave wiki
From: eric_at_[hidden]
Date: 2010-01-04 20:39:29
Author: eric_niebler
Date: 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
New Revision: 58697
URL: http://svn.boost.org/trac/boost/changeset/58697
Log:
Merged revisions 58401,58412 via svnmerge from 
https://svn.boost.org/svn/boost/trunk
........
  r58401 | eric_niebler | 2009-12-16 09:29:09 +1100 (Wed, 16 Dec 2009) | 1 line
  
  more appropriate use of ellipses when a really bad conversion sequence is needed
........
  r58412 | eric_niebler | 2009-12-16 21:30:40 +1100 (Wed, 16 Dec 2009) | 1 line
  
  fix BOOST_PROTO_EXTENDS to work with elaborated types
........
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/config/   (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/integer/   (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/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/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/value_init.hpp   (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/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/integer/   (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/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/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/static_assert/   (props changed)
   branches/release/libs/system/   (props changed)
   branches/release/libs/thread/   (props changed)
   branches/release/libs/thread/doc/   (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/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/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/tools/   (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/context/callable.hpp |    36 +++++++++++++-----------------------    
   branches/release/boost/proto/extends.hpp          |     5 +++--                                   
   branches/release/boost/proto/make_expr.hpp        |     3 +--                                     
   branches/release/boost/proto/proto_fwd.hpp        |     2 +-                                      
   branches/release/boost/proto/transform/call.hpp   |     1 -                                       
   branches/release/boost/proto/transform/when.hpp   |    10 +++-------                              
   6 files changed, 21 insertions(+), 36 deletions(-)
Modified: branches/release/boost/proto/context/callable.hpp
==============================================================================
--- branches/release/boost/proto/context/callable.hpp	(original)
+++ branches/release/boost/proto/context/callable.hpp	2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -36,21 +36,29 @@
     {
         namespace detail
         {
+            template<typename Context>
+            struct callable_context_wrapper
+              : remove_cv<Context>::type
+            {
+                callable_context_wrapper();
+                typedef private_type_ fun_type(...);
+                operator fun_type *() const;
+            private:
+                callable_context_wrapper &operator =(callable_context_wrapper const &);
+            };
+
             template<typename T>
             yes_type check_is_expr_handled(T const &);
 
             no_type check_is_expr_handled(private_type_ const &);
 
-            template<typename Context, long Arity>
-            struct callable_context_wrapper;
-
             template<typename Expr, typename Context, long Arity = Expr::proto_arity_c>
             struct is_expr_handled;
 
             template<typename Expr, typename Context>
             struct is_expr_handled<Expr, Context, 0>
             {
-                static callable_context_wrapper<Context, 1> &sctx_;
+                static callable_context_wrapper<Context> &sctx_;
                 static Expr &sexpr_;
                 static typename Expr::proto_tag &stag_;
 
@@ -243,28 +251,10 @@
 
         namespace detail
         {
-            template<typename Context>
-            struct callable_context_wrapper<Context, N>
-              : remove_cv<Context>::type
-            {
-                callable_context_wrapper();
-                typedef
-                    private_type_ const &fun_type(
-                        BOOST_PP_ENUM_PARAMS(
-                            BOOST_PP_INC(N)
-                          , detail::dont_care BOOST_PP_INTERCEPT
-                        )
-                    );
-                operator fun_type *() const;
-
-            private:
-                callable_context_wrapper &operator =(callable_context_wrapper const &);
-            };
-
             template<typename Expr, typename Context>
             struct is_expr_handled<Expr, Context, N>
             {
-                static callable_context_wrapper<Context, N> &sctx_;
+                static callable_context_wrapper<Context> &sctx_;
                 static Expr &sexpr_;
                 static typename Expr::proto_tag &stag_;
 
Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp	(original)
+++ branches/release/boost/proto/extends.hpp	2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -147,7 +147,8 @@
     #define BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)                                       \
         Expr proto_expr_;                                                                           \
                                                                                                     \
-        typedef typename Expr::proto_base_expr proto_base_expr;                                     \
+        typedef Expr proto_base_expr_; /**< INTERNAL ONLY */                                        \
+        typedef typename proto_base_expr_::proto_base_expr proto_base_expr;                         \
         typedef Domain proto_domain;                                                                \
         typedef Derived proto_derived_expr;                                                         \
         typedef typename proto_base_expr::proto_tag proto_tag;                                      \
@@ -156,7 +157,7 @@
         typedef typename proto_base_expr::address_of_hack_type_ proto_address_of_hack_type_;        \
         typedef void proto_is_expr_; /**< INTERNAL ONLY */                                          \
         BOOST_STATIC_CONSTANT(long, proto_arity_c = proto_base_expr::proto_arity_c);                \
-        typedef boost::proto::tag::proto_expr fusion_tag;                                \
+        typedef boost::proto::tag::proto_expr fusion_tag;                                           \
         BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~)                        \
                                                                                                     \
         static proto_derived_expr const make(Expr const &e)                                         \
Modified: branches/release/boost/proto/make_expr.hpp
==============================================================================
--- branches/release/boost/proto/make_expr.hpp	(original)
+++ branches/release/boost/proto/make_expr.hpp	2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -930,8 +930,7 @@
             type;
             #else
             #define M0(N, F) char (&F)[BOOST_PP_INC(N)]
-            static M0(BOOST_PROTO_MAX_ARITY, deducer(
-                BOOST_PP_ENUM_PARAMS(N, dont_care BOOST_PP_INTERCEPT)));
+            static M0(BOOST_PROTO_MAX_ARITY, deducer(...));
             #define M1(Z, X, DATA)                                                                  \
             typedef typename domain_of<BOOST_PP_CAT(A, X)>::type BOOST_PP_CAT(D, X);                \
             static BOOST_PP_CAT(D, X) &BOOST_PP_CAT(d, X);                                          \
Modified: branches/release/boost/proto/proto_fwd.hpp
==============================================================================
--- branches/release/boost/proto/proto_fwd.hpp	(original)
+++ branches/release/boost/proto/proto_fwd.hpp	2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -95,7 +95,7 @@
 
         struct private_type_
         {
-            private_type_ const &operator ,(int) const;
+            private_type_ operator ,(int) const;
         };
 
         template<typename T>
Modified: branches/release/boost/proto/transform/call.hpp
==============================================================================
--- branches/release/boost/proto/transform/call.hpp	(original)
+++ branches/release/boost/proto/transform/call.hpp	2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -23,7 +23,6 @@
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/traits.hpp>
     #include <boost/proto/transform/impl.hpp>
-    #include <boost/proto/detail/dont_care.hpp>
     #include <boost/proto/detail/as_lvalue.hpp>
     #include <boost/proto/detail/poly_function.hpp>
 
Modified: branches/release/boost/proto/transform/when.hpp
==============================================================================
--- branches/release/boost/proto/transform/when.hpp	(original)
+++ branches/release/boost/proto/transform/when.hpp	2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -146,16 +146,12 @@
             template<typename Expr, typename State, typename Data>
             struct impl : transform_impl<Expr, State, Data>
             {
-                typedef call<R(BOOST_PP_ENUM_PARAMS(N, A))> call_;
-                typedef make<R(BOOST_PP_ENUM_PARAMS(N, A))> make_;
-
+                // OK to evaluate is_callable<R> here. R should be compete by now.
                 typedef
                     typename mpl::if_c<
-                        // OK to evaluate is_callable<R> here.
-                        // R should be compete by now.
                         is_callable<R>::value
-                      , call_                       // "R" is a function to call
-                      , make_                       // "R" is an object to construct
+                      , call<R(BOOST_PP_ENUM_PARAMS(N, A))> // "R" is a function to call
+                      , make<R(BOOST_PP_ENUM_PARAMS(N, A))> // "R" is an object to construct
                     >::type
                 which;