Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

placeholders

命名空间  <functional>

namespace placeholders {
  extern /* unspecified */ _1;
  extern /* unspecified */ _2;
  extern /* unspecified */ _3;
  // ...
}

绑定参数占位符
这个命名空间声明了一个未指定数量的对象:_1,_2,_3,…,用于在函数绑定调用中指定占位符。

当调用bind返回的函数对象时,占位符_1的实参被调用中的第一个实参替换,_2被调用中的第二个实参替换,以此类推……例如:
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


这些占位符对象的类型是未指定的(这取决于库的实现,参见is_placeholder),但在所有情况下, 它们的类型至少应该是 nothrow default-constructible 和 nothrow copy-constructible. 是否支持赋值操作或其他构造函数是由实现定义的,但任何复制赋值或移动构造函数也不应抛出。

当bind调用在另一个bind调用中用作子表达式时,占位符相对于最外层的bind表达式。

☲  对象



_1
替换为函数调用中的第一个参数。

_2
替换为函数调用中的第二个参数。

_N
替换为函数调用中的第N个参数(其中N是一个自然数)。


🍄  另请参阅



bind 绑定函数参数(类模板)
is_placeholder 是否占位符(类模板)

联系我们 免责声明 关于CandCplus 网站地图