在最新的 C++ 标准中,我注意到以下宏:
bool isgreater(float x, float y);
bool isgreaterequal(float x, float y);
bool isless(float x, float y);
bool islessequal(float x, float y);
bool islessgreater(float x, float y);
bool isunordered(float x, float y);
这些宏来自 C(7.12.14 和 7.12.14)。
那么,为什么有人会使用这些宏而不是运算符呢?这些宏有什么特别之处吗(比如检查inf
),或者它们与对应的运算符相同吗?
C++ 示例:
#include <iostream>
#include <cmath>
int main()
{
float x=0.2;
float y=0.5;
std::cout << x << " < " << y << " : " << std::boolalpha << std::islessequal( x, y ) << std::endl;
std::cout << x << " < " << y << " : " << std::boolalpha << ( x <= y ) << std::endl;
}