$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: stipe_at_[hidden]
Date: 2008-03-01 14:54:51
Author: srajko
Date: 2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
New Revision: 43442
URL: http://svn.boost.org/trac/boost/changeset/43442
Log:
updated bind_mem_fn
Text files modified: 
   sandbox/SOC/2007/signals/boost/dataflow/utility/bind_mem_fn.hpp                          |    10 +++-------                              
   sandbox/SOC/2007/signals/boost/dataflow/utility/slot_type.hpp                            |     6 +++---                                  
   sandbox/SOC/2007/signals/boost/dataflow/utility/underlying_type.hpp                      |     1 +                                       
   sandbox/SOC/2007/signals/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj |     2 --                                      
   sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2                                    |     2 +-                                      
   sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk                                  |     4 ++++                                    
   sandbox/SOC/2007/signals/libs/dataflow/doc/utility/utility.qbk                           |    13 +++++++++++++                           
   sandbox/SOC/2007/signals/libs/dataflow/test/utility/test_bind_mem_fn.cpp                 |    14 +++++++++-----                          
   8 files changed, 34 insertions(+), 18 deletions(-)
Modified: sandbox/SOC/2007/signals/boost/dataflow/utility/bind_mem_fn.hpp
==============================================================================
--- sandbox/SOC/2007/signals/boost/dataflow/utility/bind_mem_fn.hpp	(original)
+++ sandbox/SOC/2007/signals/boost/dataflow/utility/bind_mem_fn.hpp	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -32,6 +32,9 @@
 
 } // namespace detail
 
+/// Binds a class member function to a class object.
+/** \returns boost::function type with the bound member function.
+*/
 template<typename MemFn, typename T>
 boost::function<typename member_function_signature<MemFn>::type>
     bind_mem_fn(MemFn mem_fn, T &object)
@@ -54,13 +57,6 @@
                         BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
                         BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_INC(BOOST_PP_ITERATION()),_));
     }
-/*    boost::function<typename member_function_signature<MemFn>::type>
-        operator()(MemFn mem_fn, const T &object)
-    {
-        return boost::bind(mem_fn, boost::cref(object)
-                           BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
-                           BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_INC(BOOST_PP_ITERATION()),_));
-    }*/
 };
 
 #endif // defined(BOOST_PP_IS_ITERATING)
Modified: sandbox/SOC/2007/signals/boost/dataflow/utility/slot_type.hpp
==============================================================================
--- sandbox/SOC/2007/signals/boost/dataflow/utility/slot_type.hpp	(original)
+++ sandbox/SOC/2007/signals/boost/dataflow/utility/slot_type.hpp	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -15,9 +15,9 @@
 
 namespace utility {
 
-// Constructs a type corresponding to pointer to member of T with signature Signature.
-// e.g. slot_type<some_class, void(float)>::type is void (some_class::*) (float)
-
+/// Constructs a type corresponding to pointer to member of T with signature Signature.
+/** e.g. slot_type<some_class, void(float)>::type is void (some_class::*) (float)
+*/
     template <typename Signature, typename T>
     struct slot_type
     {
Modified: sandbox/SOC/2007/signals/boost/dataflow/utility/underlying_type.hpp
==============================================================================
--- sandbox/SOC/2007/signals/boost/dataflow/utility/underlying_type.hpp	(original)
+++ sandbox/SOC/2007/signals/boost/dataflow/utility/underlying_type.hpp	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -11,6 +11,7 @@
 
 namespace boost { namespace dataflow { namespace utility {
 
+/// Returns the cv-unqualified, unreferenced version of a type.
 template<typename T>
 struct underlying_type
 {
Modified: sandbox/SOC/2007/signals/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj
==============================================================================
--- sandbox/SOC/2007/signals/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj	(original)
+++ sandbox/SOC/2007/signals/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -111,7 +111,6 @@
                 08668C4E0C19A16300ACB19A /* simple_distributed_example.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = simple_distributed_example.cpp; sourceTree = "<group>"; };
                 08668C4F0C19A16300ACB19A /* Jamfile.v2 */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Jamfile.v2; sourceTree = "<group>"; };
                 088FC6BF0D5A6EAD004F0E76 /* Jamfile.v2 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Jamfile.v2; sourceTree = "<group>"; };
-		088FC6C10D5A6EEC004F0E76 /* test_forced_as_vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_forced_as_vector.cpp; sourceTree = "<group>"; };
                 089AE57F0D79C5CF00AB9DA8 /* bind_mem_fn.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = bind_mem_fn.hpp; sourceTree = "<group>"; };
                 089AE5830D79C7CB00AB9DA8 /* bind_object.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = bind_object.hpp; sourceTree = "<group>"; };
                 089AE58B0D79C96200AB9DA8 /* slot_type.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = slot_type.hpp; sourceTree = "<group>"; };
@@ -350,7 +349,6 @@
                         isa = PBXGroup;
                         children = (
                                 088FC6BF0D5A6EAD004F0E76 /* Jamfile.v2 */,
-				088FC6C10D5A6EEC004F0E76 /* test_forced_as_vector.cpp */,
                                 0842A3600D5A7A8700CF8479 /* test_forced_sequence.cpp */,
                                 089AE5BC0D79CE5E00AB9DA8 /* test_bind_mem_fn.cpp */,
                         );
Modified: sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2
==============================================================================
--- sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2	(original)
+++ sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -73,7 +73,7 @@
       [ glob ../../../boost/dataflow/utility/*.hpp ]
    :
         <doxygen:param>TAB_SIZE=4
-        <doxygen:param>EXAMPLE_PATH=../test
+        <doxygen:param>EXAMPLE_PATH=../test/utility
         <doxygen:param>EXAMPLE_PATH=../example
         <doxygen:param>STRIP_FROM_PATH=$(root)
         <doxygen:param>STRIP_FROM_INC_PATH=$(root)
Modified: sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk
==============================================================================
--- sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk	(original)
+++ sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -92,6 +92,8 @@
 [template socket_receiver[] [link dataflow.signals.components.network.socket_receiver socket_receiver]]
 [template chain[] [link dataflow.signals.components.topologies.chain chain]]
 
+[template bind_mem_fn[] [link dataflow.utility.bind_mem_fn bind_mem_fn]]
+
 [template fusion[] [@http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/index.html Boost.Fusion]]
 [template BoostFusion[] [@http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/index.html Boost.Fusion]]
 [template BoostIostreams[] [@http://www.boost.org/libs/iostreams/doc/index.html]]
@@ -160,6 +162,8 @@
 [import ../test/signals/test_junction.cpp]
 [import ../test/signals/test_mutex.cpp]
 
+[import ../test/utility/test_bind_mem_fn.cpp]
+
 [import ../example/fibonacci.cpp]
 [import ../example/signals/simple_example_components.hpp]
 [import ../example/signals/simple_example.cpp]
Modified: sandbox/SOC/2007/signals/libs/dataflow/doc/utility/utility.qbk
==============================================================================
--- sandbox/SOC/2007/signals/libs/dataflow/doc/utility/utility.qbk	(original)
+++ sandbox/SOC/2007/signals/libs/dataflow/doc/utility/utility.qbk	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -1,5 +1,18 @@
 [section:utility Miscellaneous utilities]
 
+[section bind_mem_fn]
+
+* See also: [funcref boost::dataflow::utility::bind_mem_fn bind_mem_fn reference]
+
+[bind_mem_fn] can be used to bind a class member function to a class object.
+It returns a boost::function, which can be used as a [DataflowSignals] [Port].
+
+[heading Example]
+
+[test_bind_mem_fn]
+
+[endsect]
+
 [xinclude ../dataflow_utility_doxygen.xml]
 
 [endsect]
\ No newline at end of file
Modified: sandbox/SOC/2007/signals/libs/dataflow/test/utility/test_bind_mem_fn.cpp
==============================================================================
--- sandbox/SOC/2007/signals/libs/dataflow/test/utility/test_bind_mem_fn.cpp	(original)
+++ sandbox/SOC/2007/signals/libs/dataflow/test/utility/test_bind_mem_fn.cpp	2008-03-01 14:54:50 EST (Sat, 01 Mar 2008)
@@ -1,3 +1,5 @@
+//[ test_bind_mem_fn
+
 // Copyright Stjepan Rajko 2008. Use, modification and
 // distribution is subject to the Boost Software License, Version
 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -27,23 +29,25 @@
 int test_main(int, char* [])
 {
     using namespace boost;
-    namespace df=boost::dataflow;
+    using boost::dataflow::utility::bind_mem_fn;
     
     sum test_sum(1);
     
-    boost::function<int(int)> fun1 = df::utility::bind_mem_fn(&sum::add1, test_sum);
-    boost::function<int(int, int)> fun2 = df::utility::bind_mem_fn(&sum::add2, test_sum);
+    boost::function<int(int)> fun1 = bind_mem_fn(&sum::add1, test_sum);
+    boost::function<int(int, int)> fun2 = bind_mem_fn(&sum::add2, test_sum);
     
     BOOST_CHECK_EQUAL(fun1(2), 3);
     BOOST_CHECK_EQUAL(fun2(2, 3), 6);
     
     const sum const_test_sum(2);
 
-    boost::function<int(int)> cfun1 = df::utility::bind_mem_fn(&sum::add1, const_test_sum);
-    boost::function<int(int, int)> cfun2 = df::utility::bind_mem_fn(&sum::add2, const_test_sum);
+    boost::function<int(int)> cfun1 = bind_mem_fn(&sum::add1, const_test_sum);
+    boost::function<int(int, int)> cfun2 = bind_mem_fn(&sum::add2, const_test_sum);
 
     BOOST_CHECK_EQUAL(cfun1(2), 4);
     BOOST_CHECK_EQUAL(cfun2(2, 3), 7);
 
     return 0;
 } // int test_main(int, char* [])
+
+//]
\ No newline at end of file