$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67287 - in branches/release: . boost boost/algorithm/string boost/archive boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/gil boost/graph boost/integer boost/interprocess boost/intrusive boost/io boost/iostreams boost/math boost/msm boost/numeric/ublas boost/program_options boost/property_tree boost/proto boost/proto/context boost/proto/detail boost/proto/transform 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/typeof boost/unordered boost/utility boost/uuid boost/variant boost/wave doc libs libs/algorithm/string libs/array/doc libs/array/test libs/bimap libs/config libs/date_time libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/iostreams libs/math libs/math/doc libs/math/doc/sf_and_dist libs/mpi/build libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/msm libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/proto/doc/reference/transform libs/proto/test libs/python libs/range libs/regex libs/serialization libs/serialization/doc libs/serialization/example libs/serialization/src libs/serialization/test libs/serialization/vc7ide 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/type_traits/doc libs/typeof/doc libs/unordered libs/utility libs/utility/swap/test libs/uuid libs/wave more more/getting_started status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/regression/src tools/release tools/wave
From: eric_at_[hidden]
Date: 2010-12-17 13:58:49
Author: eric_niebler
Date: 2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
New Revision: 67287
URL: http://svn.boost.org/trac/boost/changeset/67287
Log:
merge various proto fixes from trunk
Added:
   branches/release/libs/proto/test/make.cpp
      - copied unchanged from r67233, /trunk/libs/proto/test/make.cpp
Properties modified: 
   branches/release/   (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/config.hpp   (props changed)
   branches/release/boost/detail/   (props changed)
   branches/release/boost/detail/endian.hpp   (props changed)
   branches/release/boost/filesystem/   (props changed)
   branches/release/boost/filesystem.hpp   (props changed)
   branches/release/boost/functional/hash/   (props changed)
   branches/release/boost/fusion/   (props changed)
   branches/release/boost/gil/   (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/io/   (props changed)
   branches/release/boost/iostreams/   (props changed)
   branches/release/boost/math/   (props changed)
   branches/release/boost/math_fwd.hpp   (props changed)
   branches/release/boost/msm/   (props changed)
   branches/release/boost/numeric/ublas/   (props changed)
   branches/release/boost/numeric/ublas/functional.hpp   (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/signals2.hpp   (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/token_functions.hpp   (props changed)
   branches/release/boost/tr1/   (props changed)
   branches/release/boost/type_traits/   (props changed)
   branches/release/boost/typeof/message.hpp   (props changed)
   branches/release/boost/typeof/register_functions.hpp   (props changed)
   branches/release/boost/typeof/register_functions_iterate.hpp   (props changed)
   branches/release/boost/typeof/typeof.hpp   (props changed)
   branches/release/boost/typeof/unsupported.hpp   (props changed)
   branches/release/boost/unordered/   (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/algorithm/string/   (props changed)
   branches/release/libs/array/doc/array.xml   (props changed)
   branches/release/libs/array/test/array0.cpp   (props changed)
   branches/release/libs/array/test/array2.cpp   (props changed)
   branches/release/libs/bimap/   (props changed)
   branches/release/libs/config/   (props changed)
   branches/release/libs/date_time/   (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/iostreams/   (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/   (props changed)
   branches/release/libs/math/doc/sf_and_dist/   (props changed)
   branches/release/libs/mpi/build/   (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/msm/   (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/serialization/   (props changed)
   branches/release/libs/serialization/doc/   (props changed)
   branches/release/libs/serialization/example/   (props changed)
   branches/release/libs/serialization/src/   (props changed)
   branches/release/libs/serialization/test/test_diamond_complex.cpp   (props changed)
   branches/release/libs/serialization/vc7ide/   (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/type_traits/doc/   (props changed)
   branches/release/libs/typeof/doc/typeof.qbk   (props changed)
   branches/release/libs/unordered/   (props changed)
   branches/release/libs/utility/   (props changed)
   branches/release/libs/utility/swap.html   (props changed)
   branches/release/libs/utility/swap/test/std_bitset.cpp   (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/more/getting_started/   (props changed)
   branches/release/rst.css   (props changed)
   branches/release/status/   (props changed)
   branches/release/status/Jamfile.v2   (props changed)
   branches/release/status/explicit-failures-markup.xml   (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/quickbook/   (props changed)
   branches/release/tools/regression/   (props changed)
   branches/release/tools/regression/src/library_status.cpp   (props changed)
   branches/release/tools/release/   (props changed)
   branches/release/tools/wave/   (props changed)
Text files modified: 
   branches/release/boost/proto/context/callable.hpp            |     4 +-                                      
   branches/release/boost/proto/context/default.hpp             |     4 +-                                      
   branches/release/boost/proto/detail/decltype.hpp             |     4 +-                                      
   branches/release/boost/proto/extends.hpp                     |    12 +++++-----                              
   branches/release/boost/proto/proto_fwd.hpp                   |    12 ++++++++--                              
   branches/release/boost/proto/transform/call.hpp              |     2                                         
   branches/release/boost/proto/transform/default.hpp           |     4 +-                                      
   branches/release/boost/proto/transform/make.hpp              |    43 +++++++++++++++++++++++++-------------- 
   branches/release/boost/proto/transform/pass_through.hpp      |     2                                         
   branches/release/libs/proto/doc/reference/transform/make.xml |    12 -----------                             
   branches/release/libs/proto/test/Jamfile.v2                  |     1                                         
   branches/release/libs/proto/test/noinvoke.cpp                |    35 ++++++++++++++++++++++++++++++++        
   12 files changed, 88 insertions(+), 47 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-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -115,7 +115,7 @@
                 typedef typename proto::result_of::value<Expr const &>::type value_type;
 
                 typedef
-                    typename boost::tr1_result_of<
+                    typename BOOST_PROTO_RESULT_OF<
                         Context(typename Expr::proto_tag, value_type)
                     >::type
                 result_type;
@@ -294,7 +294,7 @@
                 BOOST_PP_REPEAT(N, BOOST_PROTO_CHILD_N_TYPE, Expr)
 
                 typedef
-                    typename boost::tr1_result_of<
+                    typename BOOST_PROTO_RESULT_OF<
                         Context(
                             typename Expr::proto_tag
                             BOOST_PP_ENUM_TRAILING_PARAMS(N, child)
Modified: branches/release/boost/proto/context/default.hpp
==============================================================================
--- branches/release/boost/proto/context/default.hpp	(original)
+++ branches/release/boost/proto/context/default.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -322,7 +322,7 @@
                 function_type;
 
                 typedef
-                    typename boost::tr1_result_of<function_type()>::type
+                    typename BOOST_PROTO_RESULT_OF<function_type()>::type
                 result_type;
 
                 result_type operator ()(Expr &expr, Context &context) const
@@ -423,7 +423,7 @@
             function_type;
 
             typedef
-                typename boost::tr1_result_of<
+                typename BOOST_PROTO_RESULT_OF<
                     function_type(BOOST_PP_ENUM_SHIFTED(N, BOOST_PROTO_DEFAULT_EVAL_TYPE, Expr))
                 >::type
             result_type;
Modified: branches/release/boost/proto/detail/decltype.hpp
==============================================================================
--- branches/release/boost/proto/detail/decltype.hpp	(original)
+++ branches/release/boost/proto/detail/decltype.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -336,7 +336,7 @@
             // member object pointers.
             template<typename T, typename Void = void>
             struct result_of_
-              : boost::tr1_result_of<T>
+              : BOOST_PROTO_RESULT_OF<T>
             {};
 
             template<typename T, typename U, typename V>
@@ -486,7 +486,7 @@
         {
             typedef typename uncvref<PMF>::type pmf_type;
             typedef typename classtypeof<pmf_type>::type V;
-            typedef typename boost::tr1_result_of<pmf_type(T)>::type result_type;
+            typedef typename BOOST_PROTO_RESULT_OF<pmf_type(T)>::type result_type;
 
             memfun(T t, PMF p)
               : obj(t)
Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp	(original)
+++ branches/release/boost/proto/extends.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -74,7 +74,7 @@
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_IMPL_(Z, N, DATA, Const)                                      \
         BOOST_PP_IF(N, BOOST_PROTO_TEMPLATE_YES_, BOOST_PROTO_TEMPLATE_NO_)(Z, N)                   \
-        typename boost::tr1_result_of<                                                              \
+        typename BOOST_PROTO_RESULT_OF<                                                              \
             proto_generator(                                                                        \
                 typename boost::proto::result_of::BOOST_PP_CAT(funop, N)<                           \
                     proto_derived_expr Const()                                                      \
@@ -103,7 +103,7 @@
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(Const)                                         \
         template<typename... A>                                                                     \
-        typename boost::tr1_result_of<                                                              \
+        typename BOOST_PROTO_RESULT_OF<                                                              \
             proto_generator(                                                                        \
                 typename boost::proto::result_of::funop<                                            \
                     proto_derived_expr Const()(A const &...)                                        \
@@ -202,7 +202,7 @@
 
     #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, Const, Typename)                            \
         BOOST_PROTO_DISABLE_MSVC_C4522                                                              \
-        Typename() boost::tr1_result_of<                                                            \
+        Typename() BOOST_PROTO_RESULT_OF<                                                            \
             Typename() This::proto_generator(                                                       \
                 Typename() boost::proto::base_expr<                                                 \
                     Typename() This::proto_domain                                                   \
@@ -251,7 +251,7 @@
         ///
     #define BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(ThisConst, ThatConst)                                  \
         template<typename A>                                                                        \
-        typename boost::tr1_result_of<                                                              \
+        typename BOOST_PROTO_RESULT_OF<                                                              \
             proto_generator(                                                                        \
                 typename boost::proto::base_expr<                                                   \
                     proto_domain                                                                    \
@@ -317,7 +317,7 @@
         ///
     #define BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(ThisConst, ThatConst)                               \
         template<typename A>                                                                        \
-        typename boost::tr1_result_of<                                                              \
+        typename BOOST_PROTO_RESULT_OF<                                                              \
             proto_generator(                                                                        \
                 typename boost::proto::base_expr<                                                   \
                     proto_domain                                                                    \
@@ -371,7 +371,7 @@
         struct result                                                                               \
         {                                                                                           \
             typedef                                                                                 \
-                typename boost::tr1_result_of<                                                      \
+                typename BOOST_PROTO_RESULT_OF<                                                     \
                     proto_generator(                                                                \
                         typename boost::proto::result_of::funop<                                    \
                             Sig                                                                     \
Modified: branches/release/boost/proto/proto_fwd.hpp
==============================================================================
--- branches/release/boost/proto/proto_fwd.hpp	(original)
+++ branches/release/boost/proto/proto_fwd.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -83,6 +83,12 @@
 # endif
 #endif
 
+#ifdef BOOST_PROTO_USE_NORMAL_RESULT_OF
+# define BOOST_PROTO_RESULT_OF boost::result_of
+#else
+# define BOOST_PROTO_RESULT_OF boost::tr1_result_of
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -154,8 +160,8 @@
         /// INTERNAL ONLY
         ///
         #define BOOST_PROTO_UNCVREF(X)                                                              \
-			typename boost::proto::detail::uncvref<X>::type											\
-			/**/
+            typename boost::proto::detail::uncvref<X>::type                                         \
+            /**/
 
         struct _default;
 
@@ -744,7 +750,7 @@
     //namespace exops
     //{}
 
-	namespace exops = exprns_;
+    namespace exops = exprns_;
 
 }} // namespace boost::proto
 
Modified: branches/release/boost/proto/transform/call.hpp
==============================================================================
--- branches/release/boost/proto/transform/call.hpp	(original)
+++ branches/release/boost/proto/transform/call.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -91,7 +91,7 @@
             struct impl2
               : transform_impl<Expr, State, Data>
             {
-                typedef typename boost::tr1_result_of<Fun()>::type result_type;
+                typedef typename BOOST_PROTO_RESULT_OF<Fun()>::type result_type;
 
                 result_type operator()(
                     typename impl2::expr_param
Modified: branches/release/boost/proto/transform/default.hpp
==============================================================================
--- branches/release/boost/proto/transform/default.hpp	(original)
+++ branches/release/boost/proto/transform/default.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -480,7 +480,7 @@
                 function_type;
 
                 typedef
-                    typename boost::tr1_result_of<function_type()>::type
+                    typename BOOST_PROTO_RESULT_OF<function_type()>::type
                 result_type;
 
                 result_type operator ()(
@@ -613,7 +613,7 @@
             function_type;
 
             typedef
-                typename boost::tr1_result_of<
+                typename BOOST_PROTO_RESULT_OF<
                     function_type(BOOST_PP_ENUM_SHIFTED_PARAMS(N, r))
                 >::type
             result_type;
Modified: branches/release/boost/proto/transform/make.hpp
==============================================================================
--- branches/release/boost/proto/transform/make.hpp	(original)
+++ branches/release/boost/proto/transform/make.hpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -82,7 +82,7 @@
             template<
                 typename T
               , typename Expr, typename State, typename Data
-              , bool Applied, bool IsTransform = is_transform<T>::value
+              , bool Applied
             >
             struct nested_type_if
             {
@@ -90,15 +90,8 @@
                 static bool const applied = false;
             };
 
-            template<typename T, typename Expr, typename State, typename Data, bool Applied>
-            struct nested_type_if<T, Expr, State, Data, Applied, true>
-              : uncvref<typename T::template impl<Expr, State, Data>::result_type>
-            {
-                static bool const applied = true;
-            };
-
             template<typename T, typename Expr, typename State, typename Data>
-            struct nested_type_if<T, Expr, State, Data, true, false>
+            struct nested_type_if<T, Expr, State, Data, true>
               : nested_type<T>
             {
                 static bool const applied = true;
@@ -345,7 +338,9 @@
                 BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)
               , typename Expr, typename State, typename Data
             >
-            struct make_<R<BOOST_PP_ENUM_PARAMS(N, A)>, Expr, State, Data
+            struct make_<
+                R<BOOST_PP_ENUM_PARAMS(N, A)>
+              , Expr, State, Data
                 BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(N)
             >
               : nested_type_if<
@@ -360,8 +355,10 @@
                 BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)
               , typename Expr, typename State, typename Data
             >
-            struct make_<noinvoke<R<BOOST_PP_ENUM_PARAMS(N, A)> >, Expr, State, Data
-                BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(N)
+            struct make_<
+                noinvoke<R<BOOST_PP_ENUM_PARAMS(N, A)> >
+              , Expr, State, Data
+                BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(1)
             >
             {
                 typedef R<BOOST_PP_ENUM(N, TMP1, ~)> type;
@@ -378,8 +375,15 @@
                 BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)
               , typename Expr, typename State, typename Data
             >
-            struct make_if_<R(BOOST_PP_ENUM_PARAMS(N, A)), Expr, State, Data, CT_not_callable>
-              : uncvref<typename when<_, R(BOOST_PP_ENUM_PARAMS(N, A))>::template impl<Expr, State, Data>::result_type>
+            struct make_if_<
+                R(BOOST_PP_ENUM_PARAMS(N, A))
+              , Expr, State, Data
+              , CT_not_callable
+            >
+              : uncvref<
+                    typename when<_, R(BOOST_PP_ENUM_PARAMS(N, A))>
+                        ::template impl<Expr, State, Data>::result_type
+                >
             {
                 static bool const applied = true;
             };
@@ -389,8 +393,15 @@
                 BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)
               , typename Expr, typename State, typename Data
             >
-            struct make_if_<R(*)(BOOST_PP_ENUM_PARAMS(N, A)), Expr, State, Data, CT_not_callable>
-              : uncvref<typename when<_, R(BOOST_PP_ENUM_PARAMS(N, A))>::template impl<Expr, State, Data>::result_type>
+            struct make_if_<
+                R(*)(BOOST_PP_ENUM_PARAMS(N, A))
+              , Expr, State, Data
+              , CT_not_callable
+            >
+              : uncvref<
+                    typename when<_, R(BOOST_PP_ENUM_PARAMS(N, A))>
+                        ::template impl<Expr, State, Data>::result_type
+                >
             {
                 static bool const applied = true;
             };
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	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -178,7 +178,7 @@
                 expr_type;
 
                 typedef typename unref_expr::proto_generator proto_generator;
-                typedef typename boost::tr1_result_of<proto_generator(expr_type)>::type result_type;
+                typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type result_type;
 
                 result_type const operator ()(
                     typename pass_through_impl::expr_param e
Modified: branches/release/libs/proto/doc/reference/transform/make.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/transform/make.xml	(original)
+++ branches/release/libs/proto/doc/reference/transform/make.xml	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -243,18 +243,6 @@
                         <para>
                           If any substitutions took place in the above step and
                           <computeroutput>
-                            <classname>is_transform</classname><S<X<subscript>0</subscript>',...X<subscript>n</subscript>'> >::value
-                          </computeroutput> is 
-                          <computeroutput>true</computeroutput>, the result type is
-                          <computeroutput>
-                            boost::result_of<<classname>proto::when</classname><<classname>_</classname>, S<X<subscript>0</subscript>',...X<subscript>n</subscript>'> >(Expr, State, Data)>::type
-                          </computeroutput>.
-                        </para>
-                      </listitem>
-                      <listitem>
-                        <para>
-                          Otherwise, If any substitutions took place in the above step and
-                          <computeroutput>
                             S<X<subscript>0</subscript>',...X<subscript>n</subscript>'>
                           </computeroutput> has a nested
                           <computeroutput>type</computeroutput> typedef, the result type is
Modified: branches/release/libs/proto/test/Jamfile.v2
==============================================================================
--- branches/release/libs/proto/test/Jamfile.v2	(original)
+++ branches/release/libs/proto/test/Jamfile.v2	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -30,6 +30,7 @@
         [ run proto_fusion_s.cpp ]
         [ run toy_spirit.cpp ]
         [ run toy_spirit2.cpp ]
+        [ run make.cpp ]
         [ run noinvoke.cpp ]
         [ run mem_ptr.cpp : : : <toolset>msvc:<cxxflags>/wd4355 ]
         [ compile bug2407.cpp ]
Modified: branches/release/libs/proto/test/noinvoke.cpp
==============================================================================
--- branches/release/libs/proto/test/noinvoke.cpp	(original)
+++ branches/release/libs/proto/test/noinvoke.cpp	2010-12-17 13:58:47 EST (Fri, 17 Dec 2010)
@@ -43,6 +43,32 @@
     >
 {};
 
+template<typename T, typename U>
+struct select2nd
+{
+    typedef U type;
+};
+
+struct Test3
+  : proto::when<
+        _
+        // This add_pointer gets invoked because a substitution takes place
+        // within it.
+      , select2nd<
+            void
+          , proto::noinvoke<
+                // This remove_pointer invocation is bloked by noinvoke
+                select2nd<
+                    void
+                    // This add_pointer invocation is *not* blocked by noinvoke
+                  , boost::add_pointer<_>
+                >
+            >
+        >()
+    >
+{};
+
+
 void test_noinvoke()
 {
     typedef proto::terminal<int>::type Int;
@@ -65,6 +91,15 @@
     ));
     
     boost::remove_pointer<Int *> * t2 = Test2()(i);
+
+    BOOST_MPL_ASSERT((
+        boost::is_same<
+            boost::result_of<Test3(Int)>::type
+          , select2nd<void, Int *>
+        >
+    ));
+    
+    select2nd<void, Int *> t3 = Test3()(i);
 }
 
 using namespace boost::unit_test;