libstdc++
|
#include <functional>
Public Types | |
using | result_type |
Public Member Functions | |
copyable_function () noexcept | |
template<typename _Fn, typename _Vt = decay_t<_Fn>> requires (!is_same_v<_Vt, copyable_function>) && (!__is_in_place_type_v<_Vt>) && __is_callable_from<_Vt> | |
copyable_function (_Fn &&__f) noexcept(_S_nothrow_init< _Vt, _Fn >()) | |
copyable_function (copyable_function &&__x) noexcept | |
copyable_function (copyable_function const &__x) | |
template<typename _Tp, typename... _Args> requires is_constructible_v<_Tp, _Args...> && __is_callable_from<_Tp> | |
copyable_function (in_place_type_t< _Tp >, _Args &&... __args) noexcept(_S_nothrow_init< _Tp, _Args... >()) | |
template<typename _Tp, typename _Up, typename... _Args> requires is_constructible_v<_Tp, initializer_list<_Up>&, _Args...> && __is_callable_from<_Tp> | |
copyable_function (in_place_type_t< _Tp >, initializer_list< _Up > __il, _Args &&... __args) noexcept(_S_nothrow_init< _Tp, initializer_list< _Up > &, _Args... >()) | |
copyable_function (nullptr_t) noexcept | |
operator bool () const noexcept | |
_Res | operator() (_ArgTypes... __args) _GLIBCXX_MOF_CV noexcept(_Noex) |
template<typename _Fn> requires is_constructible_v<copyable_function, _Fn> | |
copyable_function & | operator= (_Fn &&__f) noexcept(is_nothrow_constructible_v< copyable_function, _Fn >) |
copyable_function & | operator= (const copyable_function &__x) |
copyable_function & | operator= (copyable_function &&__x) noexcept |
copyable_function & | operator= (nullptr_t) noexcept |
void | swap (copyable_function &__x) noexcept |
Friends | |
template<typename _Func> | |
auto & | __polyfunc::__base_of (_Func &) noexcept |
template<typename _Func> | |
auto & | __polyfunc::__invoker_of (_Func &) noexcept |
template<typename _Dst, typename _Src> | |
consteval bool | __polyfunc::__is_invoker_convertible () noexcept |
bool | operator== (const copyable_function &__x, nullptr_t) noexcept |
void | swap (copyable_function &__x, copyable_function &__y) noexcept |
Polymorphic copyable function wrapper.
The std::copyable_function
class template is a call wrapper similar to std::function
, but it does not provide information about it's target, and preserves constness.
It also supports const-qualification, ref-qualification, and no-throw guarantees. The qualifications and exception-specification of the copyable_function::operator()
member function are respected when invoking the target function.
Definition at line 63 of file cpyfunc_impl.h.
using std::copyable_function< _Res(_ArgTypes...) _GLIBCXX_MOF_CV noexcept(_Noex)>::result_type |
Definition at line 87 of file cpyfunc_impl.h.
|
inlinenoexcept |
Creates an empty object.
Definition at line 90 of file cpyfunc_impl.h.
References copyable_function().
Referenced by copyable_function(), copyable_function(), copyable_function(), copyable_function(), copyable_function(), copyable_function(), copyable_function(), operator=(), operator=(), operator=(), operator=(), operator==, swap(), and swap.
|
inlinenoexcept |
Creates an empty object.
Definition at line 93 of file cpyfunc_impl.h.
References copyable_function().
|
inlinenoexcept |
Moves the target object, leaving the source empty.
Definition at line 96 of file cpyfunc_impl.h.
References copyable_function().
|
inline |
Copies the target object.
Definition at line 102 of file cpyfunc_impl.h.
References copyable_function().
|
inlinenoexcept |
Stores a target object initialized from the argument.
Definition at line 111 of file cpyfunc_impl.h.
References copyable_function(), and std::forward().
|
inlineexplicitnoexcept |
Stores a target object initialized from the arguments.
Definition at line 145 of file cpyfunc_impl.h.
References copyable_function(), and std::forward().
|
inlineexplicitnoexcept |
Stores a target object initialized from the arguments.
Definition at line 159 of file cpyfunc_impl.h.
References copyable_function(), and std::forward().
|
inlineexplicitnoexcept |
True if a target object is present, false otherwise.
Definition at line 214 of file cpyfunc_impl.h.
|
inlinenoexcept |
Invoke the target object.
The target object will be invoked using the supplied arguments, and as an lvalue or rvalue, and as const or non-const, as dictated by the template arguments of the copyable_function
specialization.
Definition at line 226 of file cpyfunc_impl.h.
References std::forward(), and operator()().
Referenced by operator()().
|
inlinenoexcept |
Stores a new target object, initialized from the argument.
Definition at line 204 of file cpyfunc_impl.h.
References copyable_function(), std::forward(), and operator=().
|
inline |
Stores a copy of the source target object.
Definition at line 185 of file cpyfunc_impl.h.
References copyable_function(), and operator=().
|
inlinenoexcept |
Stores a new target object, leaving x
empty.
Definition at line 171 of file cpyfunc_impl.h.
References copyable_function(), std::addressof(), and operator=().
Referenced by operator=(), operator=(), operator=(), and operator=().
|
inlinenoexcept |
Destroys the target object (if any).
Definition at line 193 of file cpyfunc_impl.h.
References copyable_function(), and operator=().
|
inlinenoexcept |
Exchange the target objects (if any).
Definition at line 234 of file cpyfunc_impl.h.
References copyable_function(), and swap().
|
friend |
Check for emptiness by comparing with nullptr
.
Definition at line 247 of file cpyfunc_impl.h.
References copyable_function(), and operator==.
Referenced by operator==.
|
friend |
Exchange the target objects (if any).
Definition at line 242 of file cpyfunc_impl.h.
References copyable_function(), and swap().