std:: invocable, std:: regular_invocable
|
定義先ヘッダ
<concepts>
|
||
|
template
<
class
F,
class
...
Args
>
concept invocable
=
|
(C++20以降) | |
|
template
<
class
F,
class
...
Args
>
concept regular_invocable = std :: invocable < F, Args... > ; |
(C++20以降) | |
invocable
概念は、呼び出し可能型
F
が引数セット
Args...
で関数テンプレート
std::invoke
を使用して呼び出し可能であることを指定します。
regular_invocable
コンセプトは、
invocable
コンセプトに加えて、
invoke
式が
等価性保存
であり、関数オブジェクトまたは引数のいずれも変更しないことを要求します。
目次 |
、
、
等価性保存
標準ライブラリコンセプトの requires 式 で宣言された式は、 equality-preserving であることが要求されます(特に明記されている場合を除く)。
注記
invocable
と
regular_invocable
の区別は純粋に意味論的なものです。
乱数生成器は
invocable
を満たす可能性がありますが、
regular_invocable
を満たすことはできません
(
滑稽なものを除く
)。
参考文献
- C++23規格 (ISO/IEC 14882:2024):
-
-
18.7.2 コンセプト
invocable[concept.invocable]
-
18.7.2 コンセプト
-
-
18.7.3 コンセプト
regular_invocable[concept.regularinvocable]
-
18.7.3 コンセプト
- C++20規格 (ISO/IEC 14882:2020):
-
-
18.7.2 コンセプト
invocable[concept.invocable]
-
18.7.2 コンセプト
-
-
18.7.3 コンセプト
regular_invocable[concept.regularinvocable]
-
18.7.3 コンセプト
関連項目
|
指定された引数型で呼び出し可能な型かどうかをチェックする
(
std::invoke
による呼び出しのように)
(クラステンプレート) |
外部リンク
invocable
と
regular_invocable
の両方を満たす乱数生成器の
冗談の例
。
|