namespace
<functional>

std::placeholders

namespace placeholders {  extern /* unspecified */ _1;  extern /* unspecified */ _2;  extern /* unspecified */ _3;  // ...}
Bind 引數佔位符
此名稱空間聲明瞭數量未指定但足以滿足所有可能佔位符的物件的集合:_1_2_3 等等。它們用於在呼叫函式 bind 時指定佔位符。

當呼叫 bind 返回的函式物件時,第一個佔位符 _1 將被呼叫列表中的第一個引數替換,_2 將被呼叫列表中的第二個引數替換,依此類推。例如:
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 

這些佔位符物件的型別未指定(它取決於庫的實現,請參閱 is_placeholder),但在所有情況下,其型別至少應為*無異常預設可構造*(nothrow default-constructible)和*無異常複製可構造*(nothrow copy-constructible)。賦值運算子或額外的建構函式是否支援是實現定義的,但任何*複製賦值*或*移動建構函式*也必須是*無異常*的。

bind 的呼叫用作另一個 bind 呼叫中的子表示式時,佔位符是相對於最外層的 bind 表示式而言的。

物件

_1
被函式呼叫中的第一個引數替換。
_2
被函式呼叫中的第二個引數替換。
_N
被函式呼叫中的第 N 個引數替換(其中 N 是一個自然數)。

另見