A Callable type is a type, for which the INVOKE operation, as defined by std::function, std::bind, or std::thread::thread is applicable. This operation may be performed explicitly using the library function std::invoke. (since C++17).
Requirements
The type T satisfies Callable if.
Given.
f, an object of type T or const T ArgTypes, suitable list of argument types R, suitable return type
The following expressions must be valid:
Expression Requirements INVOKE(f, std::declval<ArgTyp