forked from boostorg/bind
is_placeholder, is_bind_expression added.
[SVN r34468]
This commit is contained in:
@@ -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 @@ namespace _bi
|
||||
|
||||
#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 @@ template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t
|
||||
|
||||
#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
|
||||
|
||||
Reference in New Issue
Block a user