DBL_MAX
ist Teil der Standardbibliothek. Als solches ist es nicht besonders unsicher.
Allerdings ist das Vergleichen nicht-integraler Gleitkommawerte für die Gleichheit inhärent unsicher im Sinne von unzuverlässig.
Das liegt daran, dass Fließkomma-Arithmetik mit höherer Genauigkeit als der von Ihnen gewählte Typ ausgeführt werden kann, wobei die Ergebnisse hin und her konvertiert werden und nicht immer so, wie Sie es sich denken.
im Vorbeigehen, ein Makro wie folgt definieren:
%Vor%... ist unsicher: Sie können leicht Opfer unerwünschter Textsubstitution werden und außerdem ist es ein Schandfleck.
Verwenden Sie stattdessen eine Funktion inline
, auch wenn inline
keine Optimierung garantiert:
und das gleiche gilt für die Konstante THRESHOLD
, es sollte einfach eine Konstante in C ++ sein:
Tags und Links c++