Update of /cvsroot/boost/boost/boost
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv18738/boost

Modified Files:
        bind.hpp 
Added Files:
        is_placeholder.hpp 
Log Message:
is_placeholder, is_bind_expression added.

--- NEW FILE: is_placeholder.hpp ---
#ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED
#define BOOST_IS_PLACEHOLDER_HPP_INCLUDED

// MS compatible compilers support #pragma once

#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
# pragma once
#endif


//  is_placeholder.hpp - TR1 is_placeholder metafunction
//
//  Copyright (c) 2006 Peter Dimov
//
//  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


namespace boost
{

template< class T > struct is_placeholder
{
    enum _vt { value = 0 };
};

} // namespace boost

#endif // #ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED

Index: bind.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/bind.hpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- bind.hpp    21 Apr 2006 13:14:58 -0000      1.56
+++ bind.hpp    6 Jul 2006 13:47:26 -0000       1.57
@@ -25,6 +25,7 @@
 #include <boost/ref.hpp>
 #include <boost/mem_fn.hpp>
 #include <boost/type.hpp>
+#include <boost/is_placeholder.hpp>
 #include <boost/bind/arg.hpp>
 #include <boost/detail/workaround.hpp>
 #include <boost/visit_each.hpp>
@@ -933,11 +934,32 @@
 
 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 
0x530)
 
+#if 0
+
 template<class T> struct add_value
 {
     typedef _bi::value<T> type;
 };
 
+#else
+
+template< class T, int I > struct add_value_2
+{
+    typedef boost::arg<I> type;
+};
+
+template< class T > struct add_value_2< T, 0 >
+{
+    typedef _bi::value< T > type;
+};
+
+template<class T> struct add_value
+{
+    typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type 
type;
+};
+
+#endif
+
 template<class T> struct add_value< value<T> >
 {
     typedef _bi::value<T> type;
@@ -1194,6 +1216,22 @@
 
 #endif
 
+// is_bind_expression
+
+template< class T > struct is_bind_expression
+{
+    enum _vt { value = 0 };
+};
+
+#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
+
+template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< 
R, F, L > >
+{
+    enum _vt { value = 1 };
+};
+
+#endif
+
 // bind
 
 #ifndef BOOST_BIND


Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to