Dans la dernière norme C++, j'ai remarqué les macros suivantes :
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);
Ces macros sont issues du langage C (7.12.14 et 7.12.14).
Alors, pourquoi utiliser ces macros plutôt que des opérateurs ? Ces macros font-elles quelque chose de spécial (comme vérifier la présence de inf
), ou sont-ils identiques à l'opérateur correspondant ?
Exemple 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;
}