私はクラス、スクエアを持っています:
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 に等しくし、ループが終了します。
ただし、「インクリメント式には効果がありません」という警告が表示されます。これは私のシフト操作が行われていないことを意味しますか?