cpp/utility/functional/move only function

Class template is a general-purpose polymorphic function wrapper. objects can store and invoke any constructible (not required to be move constructible) target -- functions, lambda expressions, bind expressions, or other function objects, as well as pointers to member functions and pointers to member objects.

The stored callable object is called the target of. If a contains no target, it is called empty. Unlike std, invoking an empty results in undefined behavior.

s supports every possible combination of cv-qualifiers, ref-qualifiers, and noexcept-specifiers not including provided in its template parameter. These qualifiers and specifier (if any) are added to its.

satisfies the requirements of and, but does not satisfy  or.