deduction guides for
std::function_ref
From cppreference.net
<
cpp
|
utility
|
functional
|
function ref
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Function objects
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<functional>
|
||
|
template
<
class
F
>
function_ref ( F * ) - > function_ref < F > ; |
(1) | (начиная с C++26) |
|
template
<
auto
f
>
function_ref ( std:: nontype_t < f > ) - > function_ref < /*см. ниже*/ > ; |
(2) | (начиная с C++26) |
|
template
<
auto
f,
class
T
>
function_ref ( std:: nontype_t < f > , T && ) - > function_ref < /*см. ниже*/ > ; |
(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 reference квалифицированный) для типа 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 ) > .
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |