Hallo Alle,
Sagt mal, ist das hier
inline void setFlag(int& value, int flag, bool set)
{
if (set)
value |= flag;
else
value &= ~flag;
}
inline bool getFlag(int& value, int flag)
{
return (value & flag) != 0;
}
ok? Oder steckt hier der Fehler?
Chris
Hallo Chris,
wenn die Werte 16bit- oder 32bit-Binärwerte (Compilerabhängig) sein sollen sollen mit Value = 1,2,4,8 usw. müsste das schon richtig sein. Ein value von 3 funktioniert zwar auch, gibt aber keinen rechten Sinn.
Das MSB sollte dabei nicht verwendet werden - für Binärwerte sollte eigentlich unsigned int richtig sein.
Gruss Reinhard
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]