C++ - Präprozessor - float und int vergleichen, wie?

...komplette Frage anzeigen

2 Antworten

Schreibe sauberen Code und lerne, dass der Präprozessor Texte ersetzt sowie nur einfachste Vergleiche akzeptiert. Komplexe Datentypenoperationen mit Gleitkommazahlen gehören nicht in sein Schema.

Antwort bewerten Vielen Dank für Deine Bewertung

Wenn du C++ benutzt, solltest du nicht programmieren wie in C! :)

Verwende anstelle von #define, #if und #error lieber constexpr und static_assert():

constexpr float f = 30.0f;

constexpr float fmin = 20.0f;
constexpr float fmax = 40.0f;

static_assert(f >= fmin, "f is too small");
static_assert(f <= fmax, "f is too big");

Ob du die Minimal- und Maximalwerte jetzt in Konstanten packst oder als magische Werte direkt in die Zusicherungen schreibst, bleibt dir überlassen. :)

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?