小编yqZ*_*480的帖子

为什么 std::totally_ordered<float> 返回 true?

cpp 参考(https://en.cppreference.com/w/cpp/concepts/totally_ordered)表示std::totally_ordered<T>,仅当给定左值 a、b 和 c 类型时才进行建模const std::remove_reference_t<T>

  • bool(a < b)恰好是bool(a > b)和之一bool(a == b)
  • 如果bool(a < b)bool(b < c)都为真,则为bool(a < c)真;
  • bool(a > b) == bool(b < a)
  • bool(a >= b) == !bool(a < b)
  • bool(a <= b) == !bool(b < a)

于是我想了一下NaN,发现这float句话不符合bool(a > b) == bool(b < a)。但是。std::totally_ordered<float>true我做错了什么吗?

=======

我用这个宏来创建NaN, …

c++ language-lawyer c++20

14
推荐指数
1
解决办法
733
查看次数

标签 统计

c++ ×1

c++20 ×1

language-lawyer ×1