Spec-Zone.ru › C++

направляющие вывода для std::function_ref

Определено в заголовке <functional>
template< class F >
function_ref( F* ) -> function_ref<F>;
(1) (начиная с C++26)
template< auto f >
function_ref( std::nontype_t<f> ) -> function_ref</*see below*/>;
(2) (начиная с C++26)
template< auto f, class T >
function_ref( std::nontype_t<f>, T&& ) -> function_ref</*see below*/>;
(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) (с необязательными квалификаторами cv, спецификатором noexcept и квалификатором ссылки на lvalue) для типа G, или
  • 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)>.

Пример

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/functional/function_ref/deduction_guides

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API