11 typename std::enable_if_t<std::is_integral_v<T>, T>
max(T a, T b) {
16 typename std::enable_if_t<std::is_floating_point_v<T>, T>
max(T a, T b) {
20 template <
typename T,
typename... Ts>
21 typename std::enable_if_t<std::is_arithmetic_v<T>, T>
max(T a, T b, Ts... args) {
22 return max(a,
max(b, args...));
26 typename std::enable_if_t<std::is_integral_v<T>, T>
min(T a, T b) {
31 typename std::enable_if_t<std::is_floating_point_v<T>, T>
min(T a, T b) {
35 template <
typename T,
typename... Ts>
36 typename std::enable_if_t<std::is_arithmetic_v<T>, T>
min(T a, T b, Ts... args) {
37 return min(a,
min(b, args...));
std::enable_if_t< std::is_arithmetic_v< T >, T > min(T a, T b, Ts... args)
std::enable_if_t< std::is_integral_v< T >, T > max(T a, T b)
std::enable_if_t< std::is_integral_v< T >, T > min(T a, T b)
std::enable_if_t< std::is_arithmetic_v< T >, T > max(T a, T b, Ts... args)