modern C++ type traits and metafunctions for callable types
qualified_class_of
return_type
class_of
function_type
has_*
is_*
is_invocable*