General Utility Library for C++14
2.11
|
The library provides some utilities for template metaprogramming:
invoke: A function template that calls a callable object with a given set of arguments. This is a backport of std::invoke from C++17.
invoke_result, invoke_result_t: A metafunction that computes the result of invoking a callable object with the given arguments. This is a backport of std::invoke_result from C++17.
is_invocable, is_invocable_r: A type trait that checks whether a callable object can be invoked with a given set of arguments. This is a backport of std::is_invocable from C++17.
IsContainerLike: A type trait to determine if a type behaves like a standard container.
OverloadSet and make_overload_set(): A function object type that works like an overload set of functions, and a helper function to create such an object from a bunch of lambdas.
remove_cvref: A metafunction to remove const, volatile, and reference qualifiers from a type. This is a backport of std::remove_cvref from C++20.
void_t: A template typedef that maps an arbitrary list of types to void. This is primarily useful to detect ill-formed types for SFINAE. This is a backport of std::void_t from C++17.