[/ Copyright 2014, 2025 Peter Dimov Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt ] [section:is_placeholder is_placeholder] [simplesect Authors] * Peter Dimov [endsimplesect] [section Header ] The header `` defines the class template `boost::is_placeholder`. 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. [section Synopsis] `` namespace boost { template struct is_placeholder; } `` [endsect] [section Example] `` #include #include struct arg1_type {}; constexpr arg1_type arg1{}; template<> struct boost::is_placeholder { static constexpr int value = 1; }; int f( int x ) { return x + 1; } int main() { return boost::bind( f, arg1 )( -1 ); } `` [endsect] [endsect] [endsect]