1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include <iostream>
struct Person {int m_age;};
bool operator < (const Person& lhs, const Person& rhs){return lhs.m_age < rhs.m_age;}
template<typename T>
T vmin(const T& val)
{
return val;
}
template<typename T, typename... Args>
T vmin(const T& val1, const T& val2, const Args&... vs)
{
return (val1 < val2) ?
vmin(val1, vs ...) :
vmin(val2, vs...);
}
int main()
{
Person a{10}, b{43}, c{7}, d{36}, e{21};
std::cout << vmin(a, b, c, d, e).m_age;
}
|