deduction guides for std::function_ref - cppreference.com (original) (raw)
| Defined in header | ||
|---|---|---|
| template< class F >function_ref( F* ) -> function_ref<F>; | (1) | (since C++26) |
| template< auto f >function_ref( std::nontype_t<f> ) -> function_ref</*see below*/>; | (2) | (since C++26) |
| template< auto f, class T >function_ref( std::nontype_t<f>, T&& ) -> function_ref</*see below*/>; | (3) | (since C++26) |
This overload participates in overload resolution only if std::is_function_v<F> is true.
Let type F be decltype(f). This overload participates in overload resolution only if :
- F is of the form R(G::*)(A...) noexcept(E) (optionally cv-qualified, optionally noexcept, optionally lvalue reference qualified) for a type G, or
- F is of the form M G::* for a type G and an object type M, in which case let R be std::invoke_result_t<F, T&>, A... be an empty pack, and E be false, or
- F is of the form R(*)(G, A...) noexcept(E) for a type G.
The deduced type is std::function_ref<R(A...) noexcept(E)>.