$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r76496 - in branches/release: . boost boost/phoenix/object boost/phoenix/object/detail boost/phoenix/operator boost/phoenix/operator/preprocessed boost/phoenix/stl/container boost/serialization libs libs/phoenix/doc/starter_kit libs/phoenix/preprocess libs/phoenix/test libs/phoenix/test/operator libs/phoenix/test/regression
From: hartmut.kaiser_at_[hidden]
Date: 2012-01-14 15:18:38
Author: hkaiser
Date: 2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
New Revision: 76496
URL: http://svn.boost.org/trac/boost/changeset/76496
Log:
Phoenix: merging changes from trunk (as requested by heller)
Added:
   branches/release/libs/phoenix/test/regression/bug6040.cpp
      - copied unchanged from r75069, /trunk/libs/phoenix/test/regression/bug6040.cpp
Properties modified: 
   branches/release/   (props changed)
   branches/release/boost/   (props changed)
   branches/release/boost/serialization/   (props changed)
   branches/release/libs/   (props changed)
Text files modified: 
   branches/release/boost/phoenix/object/const_cast.hpp               |     2                                         
   branches/release/boost/phoenix/object/detail/new_eval.hpp          |     4                                         
   branches/release/boost/phoenix/object/dynamic_cast.hpp             |     2                                         
   branches/release/boost/phoenix/object/reinterpret_cast.hpp         |     2                                         
   branches/release/boost/phoenix/object/static_cast.hpp              |     2                                         
   branches/release/boost/phoenix/operator/member.hpp                 |     2                                         
   branches/release/boost/phoenix/operator/preprocessed/member_10.hpp |     2                                         
   branches/release/boost/phoenix/operator/preprocessed/member_20.hpp |     2                                         
   branches/release/boost/phoenix/operator/preprocessed/member_30.hpp |     2                                         
   branches/release/boost/phoenix/operator/preprocessed/member_40.hpp |     2                                         
   branches/release/boost/phoenix/operator/preprocessed/member_50.hpp |     2                                         
   branches/release/boost/phoenix/stl/container/container.hpp         |    84 ++++++++++++++++++++------------------- 
   branches/release/boost/serialization/export.hpp                    |     2                                         
   branches/release/boost/serialization/extended_type_info.hpp        |    14 ++++++                                  
   branches/release/libs/phoenix/doc/starter_kit/operator.qbk         |     6 ++                                      
   branches/release/libs/phoenix/doc/starter_kit/values.qbk           |     9 ++-                                     
   branches/release/libs/phoenix/preprocess/wave.cfg                  |     8 +++                                     
   branches/release/libs/phoenix/test/Jamfile                         |     1                                         
   branches/release/libs/phoenix/test/operator/member.cpp             |    20 +++-----                                
   19 files changed, 98 insertions(+), 70 deletions(-)
Modified: branches/release/boost/phoenix/object/const_cast.hpp
==============================================================================
--- branches/release/boost/phoenix/object/const_cast.hpp	(original)
+++ branches/release/boost/phoenix/object/const_cast.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -29,7 +29,7 @@
         struct result;
 
         template <typename This, typename Target, typename Source, typename Context>
-        struct result<This(Target const &, Source const&, Context)>
+        struct result<This(Target, Source, Context)>
             : detail::result_of::target<Target>
         {};
 
Modified: branches/release/boost/phoenix/object/detail/new_eval.hpp
==============================================================================
--- branches/release/boost/phoenix/object/detail/new_eval.hpp	(original)
+++ branches/release/boost/phoenix/object/detail/new_eval.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -31,8 +31,8 @@
 #pragma wave option(preserve: 1)
 #endif
 
-#define BOOST_PHOENIX_ITERATION_PARAMS                                                \
-    (3, (2, BOOST_PHOENIX_COMPOSITE_LIMIT,                                            \
+#define BOOST_PHOENIX_ITERATION_PARAMS                                          \
+    (3, (2, BOOST_PHOENIX_COMPOSITE_LIMIT,                                      \
     <boost/phoenix/object/detail/new_eval.hpp>))
 #include BOOST_PHOENIX_ITERATE()
 
Modified: branches/release/boost/phoenix/object/dynamic_cast.hpp
==============================================================================
--- branches/release/boost/phoenix/object/dynamic_cast.hpp	(original)
+++ branches/release/boost/phoenix/object/dynamic_cast.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -29,7 +29,7 @@
         struct result;
 
         template <typename This, typename Target, typename Source, typename Context>
-        struct result<This(Target const &, Source const&, Context)>
+        struct result<This(Target, Source, Context)>
             : detail::result_of::target<Target>
         {};
 
Modified: branches/release/boost/phoenix/object/reinterpret_cast.hpp
==============================================================================
--- branches/release/boost/phoenix/object/reinterpret_cast.hpp	(original)
+++ branches/release/boost/phoenix/object/reinterpret_cast.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -29,7 +29,7 @@
         struct result;
 
         template <typename This, typename Target, typename Source, typename Context>
-        struct result<This(Target const &, Source const&, Context)>
+        struct result<This(Target, Source, Context)>
             : detail::result_of::target<Target>
         {};
 
Modified: branches/release/boost/phoenix/object/static_cast.hpp
==============================================================================
--- branches/release/boost/phoenix/object/static_cast.hpp	(original)
+++ branches/release/boost/phoenix/object/static_cast.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -29,7 +29,7 @@
         struct result;
 
         template <typename This, typename Target, typename Source, typename Context>
-        struct result<This(Target const &, Source const&, Context)>
+        struct result<This(Target, Source, Context)>
             : detail::result_of::target<Target>
         {};
 
Modified: branches/release/boost/phoenix/operator/member.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/member.hpp	(original)
+++ branches/release/boost/phoenix/operator/member.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -44,7 +44,7 @@
 
     template <typename Object, typename MemPtr>
     inline
-    typename enable_if<
+    typename boost::enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
     >::type
Modified: branches/release/boost/phoenix/operator/preprocessed/member_10.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_10.hpp	(original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_10.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -10,7 +10,7 @@
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag:: mem_ptr, Lhs, Rhs> {}; typedef proto::functional::make_expr<proto::tag:: mem_ptr> make_mem_ptr; } namespace rule { struct mem_ptr : expression:: mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag:: mem_ptr, Dummy> : enable_rule<rule:: mem_ptr, Dummy> {};
     template <typename Object, typename MemPtr>
     inline
-    typename enable_if<
+    typename boost::enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
     >::type
Modified: branches/release/boost/phoenix/operator/preprocessed/member_20.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_20.hpp	(original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_20.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -10,7 +10,7 @@
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag:: mem_ptr, Lhs, Rhs> {}; typedef proto::functional::make_expr<proto::tag:: mem_ptr> make_mem_ptr; } namespace rule { struct mem_ptr : expression:: mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag:: mem_ptr, Dummy> : enable_rule<rule:: mem_ptr, Dummy> {};
     template <typename Object, typename MemPtr>
     inline
-    typename enable_if<
+    typename boost::enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
     >::type
Modified: branches/release/boost/phoenix/operator/preprocessed/member_30.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_30.hpp	(original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_30.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -10,7 +10,7 @@
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag:: mem_ptr, Lhs, Rhs> {}; typedef proto::functional::make_expr<proto::tag:: mem_ptr> make_mem_ptr; } namespace rule { struct mem_ptr : expression:: mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag:: mem_ptr, Dummy> : enable_rule<rule:: mem_ptr, Dummy> {};
     template <typename Object, typename MemPtr>
     inline
-    typename enable_if<
+    typename boost::enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
     >::type
Modified: branches/release/boost/phoenix/operator/preprocessed/member_40.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_40.hpp	(original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_40.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -10,7 +10,7 @@
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag:: mem_ptr, Lhs, Rhs> {}; typedef proto::functional::make_expr<proto::tag:: mem_ptr> make_mem_ptr; } namespace rule { struct mem_ptr : expression:: mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag:: mem_ptr, Dummy> : enable_rule<rule:: mem_ptr, Dummy> {};
     template <typename Object, typename MemPtr>
     inline
-    typename enable_if<
+    typename boost::enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
     >::type
Modified: branches/release/boost/phoenix/operator/preprocessed/member_50.hpp
==============================================================================
--- branches/release/boost/phoenix/operator/preprocessed/member_50.hpp	(original)
+++ branches/release/boost/phoenix/operator/preprocessed/member_50.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -10,7 +10,7 @@
     namespace expression { template <typename Lhs, typename Rhs> struct mem_ptr : expr<proto::tag:: mem_ptr, Lhs, Rhs> {}; typedef proto::functional::make_expr<proto::tag:: mem_ptr> make_mem_ptr; } namespace rule { struct mem_ptr : expression:: mem_ptr<meta_grammar, meta_grammar> {}; } template <typename Dummy> struct meta_grammar::case_<proto::tag:: mem_ptr, Dummy> : enable_rule<rule:: mem_ptr, Dummy> {};
     template <typename Object, typename MemPtr>
     inline
-    typename enable_if<
+    typename boost::enable_if<
         is_member_function_pointer<MemPtr>
       , detail::mem_fun_ptr_gen<actor<Object>, MemPtr> const
     >::type
Modified: branches/release/boost/phoenix/stl/container/container.hpp
==============================================================================
--- branches/release/boost/phoenix/stl/container/container.hpp	(original)
+++ branches/release/boost/phoenix/stl/container/container.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -2,7 +2,7 @@
     Copyright (c) 2004 Angus Leeming
     Copyright (c) 2004 Joel de Guzman
 
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
+    Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #ifndef BOOST_PHOENIX_STL_CONTAINER_CONTAINER_HPP
@@ -98,7 +98,7 @@
             {
                 typedef typename add_reference<C>::type type;
             };
-            
+
             template <
                 typename This
               , typename C
@@ -109,7 +109,7 @@
             {
                 typedef typename add_reference<C>::type type;
             };
-            
+
             template <
                 typename This
               , typename C
@@ -189,7 +189,7 @@
             template <typename This, typename C>
             struct result<This(C&)>
             {
-                typedef 
+                typedef
                     typename const_qualified_reference_of<C>::type
                 type;
             };
@@ -482,7 +482,7 @@
             struct result<This(C &, Arg1)>
                 : result_of::insert<C, Arg1>
             {};
-            
+
             template <
                 typename This
               , typename C
@@ -492,7 +492,7 @@
             struct result<This(C &, Arg1, Arg2)>
                 : result_of::insert<C, Arg1, Arg2>
             {};
-            
+
             template <
                 typename This
               , typename C
@@ -786,41 +786,45 @@
     //  The lazy functions themselves.
     //
     ///////////////////////////////////////////////////////////////////////////////
-    BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 3)
-    BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 4)
-    BOOST_PHOENIX_ADAPT_CALLABLE(at, ::boost::phoenix::stl::at_impl, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(back, stl::back, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(begin, stl::begin, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(capacity, stl::capacity, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(clear, stl::clear, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(empty, stl::empty, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(end, stl::end, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 3)
-    BOOST_PHOENIX_ADAPT_CALLABLE(front, stl::front, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(get_allocator, stl::get_allocator, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 3)
-    BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 4)
-    BOOST_PHOENIX_ADAPT_CALLABLE(key_comp, stl::key_comp, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(max_size, stl::max_size, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(pop_back, stl::pop_back, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(pop_front, stl::pop_front, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(push_back, stl::push_back, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(push_front, stl::push_front, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(rbegin, stl::rbegin, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(rend, stl::rend, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(reserve, stl::reserve, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 3)
-    BOOST_PHOENIX_ADAPT_CALLABLE(size, stl::size, 1)
-    BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 2)
-    BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 3)
-    BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 4)
-    BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 5)
-    BOOST_PHOENIX_ADAPT_CALLABLE(value_comp, stl::value_comp, 1)
+    namespace adl_barrier
+    {
+        BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 3)
+        BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 4)
+        BOOST_PHOENIX_ADAPT_CALLABLE(at, ::boost::phoenix::stl::at_impl, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(back, stl::back, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(begin, stl::begin, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(capacity, stl::capacity, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(clear, stl::clear, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(empty, stl::empty, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(end, stl::end, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 3)
+        BOOST_PHOENIX_ADAPT_CALLABLE(front, stl::front, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(get_allocator, stl::get_allocator, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 3)
+        BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 4)
+        BOOST_PHOENIX_ADAPT_CALLABLE(key_comp, stl::key_comp, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(max_size, stl::max_size, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(pop_back, stl::pop_back, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(pop_front, stl::pop_front, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(push_back, stl::push_back, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(push_front, stl::push_front, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(rbegin, stl::rbegin, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(rend, stl::rend, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(reserve, stl::reserve, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 3)
+        BOOST_PHOENIX_ADAPT_CALLABLE(size, stl::size, 1)
+        BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 2)
+        BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 3)
+        BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 4)
+        BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 5)
+        BOOST_PHOENIX_ADAPT_CALLABLE(value_comp, stl::value_comp, 1)
+    }
 
+    using namespace phoenix::adl_barrier;
 }} // namespace boost::phoenix
 
 #endif // BOOST_PHOENIX_STL_CONTAINERS_HPP
Modified: branches/release/boost/serialization/export.hpp
==============================================================================
--- branches/release/boost/serialization/export.hpp	(original)
+++ branches/release/boost/serialization/export.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -124,7 +124,7 @@
 
 template<class T>
 struct guid_initializer
-{  
+{
     void export_guid(mpl::false_) const {
         // generates the statically-initialized objects whose constructors
         // register the information allowing serialization of T objects
Modified: branches/release/boost/serialization/extended_type_info.hpp
==============================================================================
--- branches/release/boost/serialization/extended_type_info.hpp	(original)
+++ branches/release/boost/serialization/extended_type_info.hpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -91,9 +91,21 @@
 
 template<class T>
 struct guid_defined : boost::mpl::false_ {};
+
+namespace ext {
+    template <typename T>
+    struct guid_impl
+    {
+        static inline const char * call()
+        {
+            return NULL;
+        }
+    };
+}
+
 template<class T>
 inline const char * guid(){
-    return NULL;
+    return ext::guid_impl<T>::call();
 }
 
 } // namespace serialization 
Modified: branches/release/libs/phoenix/doc/starter_kit/operator.qbk
==============================================================================
--- branches/release/libs/phoenix/doc/starter_kit/operator.qbk	(original)
+++ branches/release/libs/phoenix/doc/starter_kit/operator.qbk	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -40,6 +40,12 @@
     x[ref(i)]       // illegal (x is not a phoenix primitive or expression)
     ref(x[ref(i)])  // illegal (x is not a phoenix primitive or expression)
 
+Why are the last two expression illegal? Although `operator[]` looks as
+much like a binary operator as `operator=` above it; the difference is
+that the former must be a member (i.e. `x` must have an `operator[]`
+that takes a phoenix primitive or expression as its argument). This will
+most likely not be the case.
+
 [blurb __tip__ Learn more about operators [link phoenix.modules.operator here.]]
 
 [heading First Practical Example]
Modified: branches/release/libs/phoenix/doc/starter_kit/values.qbk
==============================================================================
--- branches/release/libs/phoenix/doc/starter_kit/values.qbk	(original)
+++ branches/release/libs/phoenix/doc/starter_kit/values.qbk	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -20,10 +20,11 @@
 
 [heading Lazy Evaluation]
 
-Confused? `val(3)` is a unary function, you say? Yes it is. However, read
-carefully: /"evaluates to a nullary function"/. `val(3)` evaluates to (returns) a
-nullary function. Aha! `val(3)` returns a function! So, since `val(3)` returns a
-function, you can invoke it. Example:
+Confused? `val` is a unary function and `val(3)` invokes it, you say?
+Yes. However, read carefully: /"evaluates to a nullary function"/.
+`val(3)` evaluates to (returns) a nullary function. Aha! `val(3)`
+returns a function! So, since `val(3)` returns a function, you can
+invoke it. Example:
 
     std::cout << val(3)() << std::endl;
 
Modified: branches/release/libs/phoenix/preprocess/wave.cfg
==============================================================================
--- branches/release/libs/phoenix/preprocess/wave.cfg	(original)
+++ branches/release/libs/phoenix/preprocess/wave.cfg	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -1,9 +1,17 @@
 -DBOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES
 -DBOOST_PHOENIX_CREATE_PREPROCESSED_FILES
 -S/home/thomas/programming/boost/trunk
+-S/home/heller/programming/boost/trunk
+-S/home/cip/ce/sithhell/programming/boost
 -S/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include
+-S/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/include
+-S/usr/lib/gcc/i486-linux-gnu/4.4.5/include
 -S/usr/include/c++/4.6.0
+-S/usr/include/c++/4.6.1
+-S/usr/include/c++/4.4.5
 -S/usr/include/c++/4.6.0/x86_64-unknown-linux-gnu
+-S/usr/include/c++/4.6.1/x86_64-unknown-linux-gnu
+-S/usr/include/c++/4.4.5/i486-linux-gnu
 -S/usr/include
 --variadics
 -NBOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL
Modified: branches/release/libs/phoenix/test/Jamfile
==============================================================================
--- branches/release/libs/phoenix/test/Jamfile	(original)
+++ branches/release/libs/phoenix/test/Jamfile	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -117,6 +117,7 @@
     [ run regression/bug4853.cpp ]
     [ run regression/bug5626.cpp ]
     [ run regression/bug5968.cpp ]
+    [ run regression/bug6040.cpp ]
     ;
 
 test-suite phoenix_include :
Modified: branches/release/libs/phoenix/test/operator/member.cpp
==============================================================================
--- branches/release/libs/phoenix/test/operator/member.cpp	(original)
+++ branches/release/libs/phoenix/test/operator/member.cpp	2012-01-14 15:18:36 EST (Sat, 14 Jan 2012)
@@ -43,21 +43,17 @@
     Test* ptr = &test;
 
     BOOST_TEST((val(ptr)->*&Test::value)() == 1);
-    /*
     BOOST_TEST((val(cptr)->*&Test::value)() == 1);
     BOOST_TEST((arg1->*&Test::value)(cptr) == 1);
-    */
 
-    /*
     ((val(ptr)->*&Test::value) = 2)();
     BOOST_TEST(test.value == 2);
-    */
 
 
-    BOOST_TEST((val(ptr)->*&Test::func)(3)() == 3);
+    BOOST_TEST((val(ptr)->*&Test::func)(val(3))() == 3);
     int i = 33;
     BOOST_TEST((arg1->*&Test::func)(arg2)(cptr, i) == i);
-    BOOST_TEST((val(cptr)->*&Test::func)(4)() == 4);
+    //BOOST_TEST((val(cptr)->*&Test::func)(4)() == 4);
     BOOST_TEST((val(ptr)->*&Test::dunc)()() == 10);
 
     BOOST_TEST((arg1->*&Test::func)(5)(ptr) == 5);
@@ -65,32 +61,32 @@
 
     shared_ptr<Test> sptr(new Test(test));
 
-    //BOOST_TEST((arg1->*&Test::value)(sptr) == 2);
+    BOOST_TEST((arg1->*&Test::value)(sptr) == 2);
     BOOST_TEST((arg1->*&Test::func)(6)(sptr) == 6);
 
     scoped_ptr<Test> scptr(new Test(test));
 
-    //BOOST_TEST((arg1->*&Test::value)(scptr) == 2);
+    BOOST_TEST((arg1->*&Test::value)(scptr) == 2);
     BOOST_TEST((arg1->*&Test::func)(7)(scptr) == 7);
 
     shared_ptr<const Test> csptr(new Test(test));
 
-    //BOOST_TEST((arg1->*&Test::value)(csptr) == 2);
+    BOOST_TEST((arg1->*&Test::value)(csptr) == 2);
     BOOST_TEST((arg1->*&Test::func)(8)(csptr) == 8);
 
     scoped_ptr<const Test> cscptr(new Test(test));
 
-    //BOOST_TEST((arg1->*&Test::value)(cscptr) == 2);
+    BOOST_TEST((arg1->*&Test::value)(cscptr) == 2);
     BOOST_TEST((arg1->*&Test::func)(9)(cscptr) == 9);
 
     std::auto_ptr<Test> aptr(new Test(test));
 
-    //BOOST_TEST((arg1->*&Test::value)(aptr) == 2);
+    BOOST_TEST((arg1->*&Test::value)(aptr) == 2);
     BOOST_TEST((arg1->*&Test::func)(10)(aptr) == 10);
 
     std::auto_ptr<const Test> captr(new Test(test));
 
-    //BOOST_TEST((arg1->*&Test::value)(captr) == 2);
+    BOOST_TEST((arg1->*&Test::value)(captr) == 2);
     BOOST_TEST((arg1->*&Test::func)(11)(captr) == 11);
 
     return boost::report_errors();