template <typename T1, typename T2> auto max (T1 a, T2 b) -> decltype(b<a?a:b);
template <typename T1, typename T2> auto max (T1 a, T2 b) -> decltype(true?a:b);
我不明白为什么这两个代码片段可以具有相同的效果。请给我一些提示和一些潜在的解释。
欢呼声。
因为三元运算符根据第二个和第三个参数的类型而不是第一个参数的值来确定结果类型。