cpp/types/enable if

If is, std has a public member typedef , equal to ; otherwise, there is no member typedef.

This metafunction is a convenient way to leverage SFINAE prior to C++20's concepts, in particular for conditionally removing functions from the candidate set based on type traits, allowing separate function overloads or specializations based on those different type traits.

std can be used in many forms, including:
 * as an additional function argument (not applicable to operator overloads),
 * as a return type (not applicable to constructors and destructors),
 * as a class template or function template parameter.