std::function_ref の推論ガイド std::function_ref
cpprefjp 日本語版
| ヘッダ <functional>
|
||
template< class F >
function_ref( F* ) -> function_ref<F>;
|
で定義 | (1) |
template< auto f >
function_ref( std::nontype_t<f> ) -> function_ref</*see below*/>;
|
(C++26以上) | (2) |
template< auto f, class T >
function_ref( std::nontype_t<f>, T&& ) -> function_ref</*see below*/>;
|
(C++26以上) | (3) |
(C++26以上) 1)
std::is_function_v<F> このオーバーロードは、true が である場合にのみオーバーロード解決に参加します。2)
F 型 std::remove_pointer_t<decltype(f)> を std::is_function_v<F> とします。このオーバーロードは、true が std::function_ref<F> である場合にのみオーバーロード解決に参加します。推論される型は です。3)
F 型 decltype(f) を とします。このオーバーロードは、以下の条件のいずれかを満たす場合にのみオーバーロード解決に参加します:
Fが型R(G::*)(A...) noexcept(E)に対するGの形式(cv修飾、noexcept、左辺値参照修飾は任意)である、またはFが型M G::*とオブジェクト型Gに対するMの形式であり、その場合Rをstd::invoke_result_t<F, T&>とし、A...を空のパックとし、Eを false とする、またはFが型R(*)(G, A...) noexcept(E)に対するGの形式である。
- 推論される型は
std::function_ref<R(A...) noexcept(E)>です。
- 推論される型は
例
|
このセクションは不完全です
理由: 例がありません |