- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
template <typename T> T min3 (T v1, T v2, T v3) {
T min = v1;
if (min > v2)
min = v2;
if (min > v3)
min = v3;
return min;
};
template <typename T> T max3 (T v1, T v2, T v3) {
T max = v1;
if (max < v2)
max = v2;
if (max < v3)
max = v3;
return max;
};
template <class T>
const T& max3 (const T& first, const T& second, const T& third)
{
return std::max (first, std::max (second, second));
}
template <class T>
const T& min3 (const T& first, const T& second, const T& third)
{
return std::min (first, std::min (second, second));
}
std::max (second, second)
std::min (second, second)
а уж часы вообще говно.
можно нюхать, лизать, на хвост нанизать
незаменимый гаджет же!
Покажи рекурсию.
Я про то, что зачем тут стддвоеточиедвоеточиемакс?
И как ни крути, почти каждый проект на с++ полон самописными велосипедами чуть менее чем полностью.
template <typename RetT> RetT MaxTemplate() { return (RetT)0; }
template <typename RetT, typename ArgT, typename ... Args> RetT MaxTemplate(ArgT Arg1, Args ... args)
{ RetT Temp = MaxTemplate<RetT>(args ...); return ((RetT)Arg1 > Temp) ? ((RetT)Arg1) : (Temp); }
стандарт C++0x...
или так понятнее min1, min2 min3 min4 - версионность на уровне функций)))