Deduktionshilfen für std::function_ref
Von cppreference.com
< cpp | utility | functional | function ref
| Definiert in der Header-Datei <functional> |
||
| template< class F > function_ref( F* ) -> function_ref<F>; |
(1) | (seit C++26) |
| template< auto f > function_ref( std::nontype_t<f> ) -> function_ref</*siehe unten*/>; |
(2) | (seit C++26) |
| template< auto f, class T > function_ref( std::nontype_t<f>, T&& ) -> function_ref</*siehe unten*/>; |
(3) | (seit C++26) |
1) Diese Überladung nimmt nur an der Auflösung von Überladungen teil, wenn std::is_function_v<F> true ist.
2) Sei der Typ F std::remove_pointer_t<decltype(f)>. Diese Überladung nimmt nur an der Auflösung von Überladungen teil, wenn std::is_function_v<F> true ist. Der abgeleitete Typ ist std::function_ref<F>.
3) Sei der Typ F decltype(f). Diese Überladung nimmt nur an der Auflösung von Überladungen teil, wenn
- F die Form R(G::*)(A...) noexcept(E) hat (optional cv-qualifiziert, optional noexcept, optional lvalue-Referenz qualifiziert) für einen Typ G, oder
- F die Form M G::* für einen Typ G und einen Objekttyp M hat, in diesem Fall sei R std::invoke_result_t<F, T&>, A... ein leeres Pack und E false ist, oder
- F die Form R(*)(G, A...) noexcept(E) für einen Typ G hat.
- Der abgeleitete Typ ist std::function_ref<R(A...) noexcept(E)>.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |