J'ai essayé de vérifier où float
perd la capacité de représenter exactement de grands nombres entiers. J'ai donc écrit ce petit extrait :
int main() {
for (int i=0; ; i++) {
if ((float)i!=i) {
return i;
}
}
}
Ce code semble fonctionner avec tous les compilateurs, à l'exception de clang. Clang génère une boucle infinie simple. Godbolt .
Est-ce autorisé ? Si oui, est-ce un problème de QoI ?