C++模板 - 完整指南,第2版介绍了最大模板:
template<typename T>
T max (T a, T b)
{
// if b < a then yield a else yield b
return b < a ? a : b;
}
Run Code Online (Sandbox Code Playgroud)
它解释了使用“b < a ? a : b”而不是“a < b ? b : a”:
请注意,根据[StepanovNotes]的max()模板有意返回"b <a?a:b"而不是"a <b?b:"确保即使两个值相等但不相等,函数也能正常运行.
怎么理解" even if the two values are equivalent but not equal."?“a < b ? b : a”对我来说似乎有相同的结果.