C++0x - variadic std::min(N2485)

今まで2つの値を比べることしかできなかったstd::min(とstd::max)が

int value = std::min(3, 4);


可変引数(最低2つ)で書けるようになる(案が出ています)

int value = std::min(3, 1, 4);
int value = std::min(3, 1, 4, 5, 2, 6, 8, 10);

この拡張はVariadic Templatesを使用して行われる

template <LessThanComparable T, typename ... Args>
requires SameType <T, Args>...
const T& min(const T& a, const T& b, const Args &... args)
{
    return std::min( b < a ? b : a, args ...);
}


N2485 - A variadic std::min(T, ...) for the C++ Standard Library


C++0x言語拡張まとめ