![]() |
Home | Libraries | People | FAQ | More |
The header <boost/is_placeholder.hpp>
defines the class template boost::is_placeholder<T>.
It defines a nested integral constant value
which is 0 when T is not a boost::bind
placeholder type, and a positive value corresponding to the placeholder index
otherwise.
That is, is_placeholder<_1>::value is 1,
is_placeholder<_2>::value is 2,
and so on.
is_placeholder can be specialized
for user types. If it is, boost::bind
will recognize these types as placeholders.
namespace boost { template<class T> struct is_placeholder; }
#include <boost/is_placeholder.hpp> #include <boost/bind.hpp> struct arg1_type {}; constexpr arg1_type arg1{}; template<> struct boost::is_placeholder<arg1_type> { static constexpr int value = 1; }; int f( int x ) { return x + 1; } int main() { return boost::bind( f, arg1 )( -1 ); }