Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 1.77 KB

placeholders.md

File metadata and controls

48 lines (35 loc) · 1.77 KB

placeholders

  • 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

参照