上一篇博客讲了std::function和std::bind的使用,其中提到了占位符,std::placeholders
定义如下:
namespace placeholders {
extern /* unspecified */ _1;
extern /* unspecified */ _2;
extern /* unspecified */ _3;
// ...
}
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
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 c