namespace
<functional>
std::placeholders
namespace placeholders {
extern /* unspecified */ _1;
extern /* unspecified */ _2;
extern /* unspecified */ _3;
// ...
}
Bind argument placeholders
This namespace declares an unspecified number of objects: _1, _2, _3,..., which are used to specify placeholders in calls to function bind.
When the function object returned by bind is called, an argument with placeholder _1 is replaced by the first argument in the call, _2 is replaced by the second argument in the call, and so on... For example:
1 2 3
|
using namespace std::placeholders;
auto bound_fn = std::bind (fn,100,_1);
bound_fn(5); // calls fn(100,5), i.e.: replacing _1 by the first argument: 5
| |
The type of these placeholder objects is unspecified (it depends on the library implementation, see is_placeholder), but in all cases their type shall at least be nothrow default-constructible and nothrow copy-constructible. Whether assignment operations or additional constructors are supported is implementation-defined, but any copy-assignment or move-constructor shall also be not throwing.
When a call to bind is used as a subexpression in another call to bind, the placeholders are relative to the outermost bind expression.
Objects
- _1
- Replaced by the first argument in the function call.
- _2
- Replaced by the second argument in the function call.
- _N
- Replaced by the Nth argument in the function call (where N is a natural number).
See also
- bind
- Bind function arguments (function template
)
- is_placeholder
- Is placeholder (class template
)