为什么这两个代码片段具有相同的效果?

问题描述 投票:1回答:1
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);

我不明白为什么这两个代码片段可以具有相同的效果。请给我一些提示和一些潜在的解释。

欢呼声。

c++ c++17 decltype ternary
1个回答
4
投票

因为三元运算符根据第二个和第三个参数的类型而不是第一个参数的值来确定结果类型。

© www.soinside.com 2019 - 2024. All rights reserved.