为什么在std::max实现中使用if-else而不是三元操作?
Why use if-else rather than ternary operation in std::max implementation
在Ubuntu中std::max的实现中,我很困惑为什么他们使用if
语句而不是三元运算。三进制操作在注释中(所以看起来它曾经是那样的,但被改变了)。这里使用if-else
有什么特别的原因吗?
template<typename _Tp>
inline const _Tp&
max(const _Tp& __a, const _Tp& __b)
{
// concept requirements
__glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
//return __a < __b ? __b : __a;
if (__a < __b)
return __b;
return __a;
}
我敢说,"当编译器的目标代码生成器通过或人类语法替代时,"这将没有任何区别。
在普通的"编译"过程中,"您的意图"将被简化为一系列基本操作,然后将(经过优化…)翻译成可执行代码。,如果,在这种情况下,"在源代码中有几种表达方式",它们很可能会减少到只有一种。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- 为什么三元操作失败不咳嗽
- 不兼容的操作原则到三元op
- 三元操作的结果(类型)是什么
- "warning: operation of ... may be undefined"用于三元操作 - 不是if/else块
- 空白或不执行任何操作的三元运算符的第二个或第三个参数
- 使用流进行三元操作安全吗?
- 为什么在std::max实现中使用if-else而不是三元操作?
- 铸造指针和三元?:操作人员我重新发明轮子了吗