- functional[meta header]
- std[meta namespace]
- variable[meta id-type]
- cpp11[meta cpp]
namespace std {
namespace placeholders {
/*see below*/ unspecified _1;
/*see below*/ unspecified _2;
…
/*see below*/ unspecified _N;
}}
- see below[italic]
- unspecified[italic]
_1
、_2
、…、_N
は、bind()
で使用するプレースホルダーオブジェクトである。
それぞれ、bind()
によって返された関数オブジェクトに指定する「第1引数」「第2引数」…「第N引数」であることを意味する。
各プレースホルダーオブジェクトの宣言は、可能ならば以下のように行われる。
inline constexpr unspecified _1;
そうできない場合、もしくはC++14までは次のように宣言される。
extern unspecified _1;
各placeholder
の型は、デフォルト構築とコピー構築が可能であり、デフォルト・コピー・ムーブコンストラクタは例外を投げない。
また、それらの型がコピー代入可能であるかは処理系定義であるが、コピー代入可能な場合はその代入演算子も同様に例外を投げない。
C++20以降、それらのコンストラクタ及び代入演算子(定義されている場合)はconstexpr
関数である。
プレースホルダーの数(N
の値)は、10以上実装することが推奨される。
- C++11