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/w/cpp/utility/functional/function_ref/deduction_guides

Spec-Zone.ru

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