Bestmögliches type-casting, um Compiler-Warnungen loszuwerden



  • Hallo,

    eine kleine Sache, die mich schon seit längerer Zeit wurmt:
    Gegeben sei eine Variable " double dPosX ".
    Gewählt wurde ein Fliesskommatyp, da die sie pro durchlauf um eine gebrochene Zahl erhöht wird. Nach Berechnung soll der Wert einer Ganzahl-Variablen zugewiesen werden,da er z.B. Bildschirmkoordinaten repräsentiert.

    Nun meckert bei einer Zuweisung

    int iX = dPosX
    

    natürlich der Compiler mit der Wahrnung , ein Informationsverlust sei möglich, weil ja der Nachkommawert wegfällt.

    Also habe ich bis jetzt immer mit

    int iX = (int)dPosX
    

    explizit im C-Stil gecasted, um die Warnungen zu unterbinden.#pragmas wollte ich vermeiden,

    Meine Frage nun:
    Man liest ja immer wieder, Typ-Casting weise auf unsauberen Programmierstil hin und sei im Grunde vermeidbar.Konkret bessere Lösungen habe ich allerdings nirgends finden können.C++ Stil-Casts ändern ja an dem Problem wohl auch nichts wesentliches. Mich würde aber schon mal interessieren, wie eine "saubere" Arbeit mit Integern aussieht, die die Werte von Rechnunen mit gebrochenen Zahlen erhalten sollen.



  • Versuch's mal mit

    int iX = static_cast<int>(dPosX);
    

    Der unsaubere Programmierstil bezieht sich eher auf downcasts in Ableitungshierarchien


Log in to reply