template<class T>
const T& min(const T& x, const T& y);
template<class T, class Pred>
const T& min(const T& x, const T& y, Pred pr);
The first template function returns y
if y < x
. Otherwise it returns x
. T
need supply only a single-argument constructor
and a destructor.
The second template function behaves the same, except that it replaces operator<(X, Y)
with pr(X, Y)
.
Microsoft-Specific:
To avoid conflicts with min
and max
in WINDEF.H, use _MIN
and _MAX
instead. These macros evaluate to _cpp_min
and _cpp_max
, respectively.
END Microsoft-Specific