私はクラス、スクエアを持っています:
class Square
{
typedef enum {kTop = 0x80, kRight = 0x40, kBottom = 0x20, kLeft = 0x10} Side;
// Other functions and stuff
}
関数の 1 つに、afor
の各辺を含む操作を実行するループがありますSquare
。私はこのようにしました:
for (Square::Side side = Square::kLeft; side < Square::kLeft; side << 1) // Warning here
{
// Do stuff
}
まず、ループは左側で機能し、次に側を 1 ポジション左にシフトして、側を下側と等しくします。ループが Top 側で操作を実行した後、for
再び左にシフトし、数値からビットを押し出して、kLeft より小さい 0 に等しくし、ループが終了します。
ただし、「インクリメント式には効果がありません」という警告が表示されます。これは私のシフト操作が行われていないことを意味しますか?