piMin/piMax can accept any arguments count
This commit is contained in:
@@ -243,40 +243,15 @@ inline constexpr T piAbs(const T & v) {
|
||||
return (v >= T(0) ? v : -v);
|
||||
}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Templated function return minimum of two values
|
||||
//! \~russian Шаблонный метод, возвращающий минимум из двух значений
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! There are some macros:
|
||||
//! - \c piMins for "short"
|
||||
//! - \c piMini for "int"
|
||||
//! - \c piMinl for "long"
|
||||
//! - \c piMinll for "llong"
|
||||
//! - \c piMinf for "float"
|
||||
//! - \c piMind for "double"
|
||||
//!
|
||||
//! Example:
|
||||
//! \snippet piincludes.cpp min2
|
||||
//! \~russian
|
||||
//! Есть несколько макросов:
|
||||
//! - \c piMins для "short"
|
||||
//! - \c piMini для "int"
|
||||
//! - \c piMinl для "long"
|
||||
//! - \c piMinll для "llong"
|
||||
//! - \c piMinf для "float"
|
||||
//! - \c piMind для "double"
|
||||
//!
|
||||
//! Пример:
|
||||
//! \snippet piincludes.cpp min2
|
||||
|
||||
template<typename T>
|
||||
inline constexpr T piMin(const T & f, const T & s) {
|
||||
constexpr T piMin(const T & f, const T & s) {
|
||||
return ((f > s) ? s : f);
|
||||
}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Templated function return minimum of tree values
|
||||
//! \~russian Шаблонный метод, возвращающий минимум из трех значений
|
||||
//! \~english Templated function return minimum of several values
|
||||
//! \~russian Шаблонный метод, возвращающий минимум из нескольких значений
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! There are some macros:
|
||||
@@ -288,7 +263,7 @@ inline constexpr T piMin(const T & f, const T & s) {
|
||||
//! - \c piMind for "double"
|
||||
//!
|
||||
//! Example:
|
||||
//! \snippet piincludes.cpp min3
|
||||
//! \snippet piincludes.cpp min2
|
||||
//! \~russian
|
||||
//! Есть несколько макросов:
|
||||
//! - \c piMins для "short"
|
||||
@@ -299,46 +274,21 @@ inline constexpr T piMin(const T & f, const T & s) {
|
||||
//! - \c piMind для "double"
|
||||
//!
|
||||
//! Пример:
|
||||
//! \snippet piincludes.cpp min3
|
||||
template<typename T>
|
||||
inline constexpr T piMin(const T & f, const T & s, const T & t) {
|
||||
return ((f < s && f < t) ? f : ((s < t) ? s : t));
|
||||
//! \snippet piincludes.cpp min2
|
||||
template<typename T, typename... Args>
|
||||
constexpr T piMin(const T & f, const T & s, const Args &... args) {
|
||||
return piMin<T>(piMin<T>(f, s), args...);
|
||||
}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Templated function return maximum of two values
|
||||
//! \~russian Шаблонный метод, возвращающий максимум из двух значений
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! There are some macros:
|
||||
//! - \c piMaxs for "short"
|
||||
//! - \c piMaxi for "int"
|
||||
//! - \c piMaxl for "long"
|
||||
//! - \c piMaxll for "llong"
|
||||
//! - \c piMaxf for "float"
|
||||
//! - \c piMaxd for "double"
|
||||
//!
|
||||
//! Example:
|
||||
//! \snippet piincludes.cpp max2
|
||||
//! \~russian
|
||||
//! Есть несколько макросов:
|
||||
//! - \c piMaxs для "short"
|
||||
//! - \c piMaxi для "int"
|
||||
//! - \c piMaxl для "long"
|
||||
//! - \c piMaxll для "llong"
|
||||
//! - \c piMaxf для "float"
|
||||
//! - \c piMaxd для "double"
|
||||
//!
|
||||
//! Пример:
|
||||
//! \snippet piincludes.cpp max2
|
||||
|
||||
template<typename T>
|
||||
inline constexpr T piMax(const T & f, const T & s) {
|
||||
constexpr T piMax(const T & f, const T & s) {
|
||||
return ((f < s) ? s : f);
|
||||
}
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Templated function return maximum of tree values
|
||||
//! \~russian Шаблонный метод, возвращающий максимум из трех значений
|
||||
//! \~english Templated function return maximum of several values
|
||||
//! \~russian Шаблонный метод, возвращающий максимум из нескольких значений
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! There are some macros:
|
||||
@@ -350,7 +300,7 @@ inline constexpr T piMax(const T & f, const T & s) {
|
||||
//! - \c piMaxd for "double"
|
||||
//!
|
||||
//! Example:
|
||||
//! \snippet piincludes.cpp max3
|
||||
//! \snippet piincludes.cpp max2
|
||||
//! \~russian
|
||||
//! Есть несколько макросов:
|
||||
//! - \c piMaxs для "short"
|
||||
@@ -361,12 +311,13 @@ inline constexpr T piMax(const T & f, const T & s) {
|
||||
//! - \c piMaxd для "double"
|
||||
//!
|
||||
//! Пример:
|
||||
//! \snippet piincludes.cpp max3
|
||||
template<typename T>
|
||||
inline constexpr T piMax(const T & f, const T & s, const T & t) {
|
||||
return ((f > s && f > t) ? f : ((s > t) ? s : t));
|
||||
//! \snippet piincludes.cpp max2
|
||||
template<typename T, typename... Args>
|
||||
constexpr T piMax(const T & f, const T & s, const Args &... args) {
|
||||
return piMax<T>(piMax<T>(f, s), args...);
|
||||
}
|
||||
|
||||
|
||||
//! \~\brief
|
||||
//! \~english Templated function return clamped value
|
||||
//! \~russian Шаблонный метод, возвращающий ограниченное значение
|
||||
|
||||
Reference in New Issue
Block a user