Ich hab hier eine Situation, die ich mir nicht erklären kann.
Code: Alles auswählen
double y = grid * static_cast<double>(i + offset.y)
Visual Studio unterlegt mir diese aber mit einer grünen Wellen-Line und meint:
Soll ich jetzt beide Variablen separat casten und dann zusammen zählen? Ist das nicht etwas unelegant, weil ineffizient? Ich sehe auch nicht ganz, was dass für einen Unterschied machen soll...C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling '+' to avoid overflow.
Einziger Erklärungsversuch den ich habe:
Wenn die beiden Variablen zusammen addiert grösser als 4294967295 sein sollten, gäbs einen Überlauf, bevor nach "double" gecastet würde.
Nur das Risiko besteht ja ohnehin immer, wenn ich zwei int's addiere.
Gruss starcow