>>540
int型引数を const にする意味があるのかと小一時間。
参照なら分かりますが。

フラグを使う点や、ここがトリッキースレであることに目を瞑れば
↓が一番素直で簡潔だと思いますが。
フラグで可読性が落ちるほど大規模なら、素直に関数化すべきだし。
関数コールに比べりゃ、bool値の演算の方がコスト安いし。

 bool flg = true;
 switch( X ) {
  case A: ...; break;
  case B: ...; ; break;
  case C: ...; ; break;
  default:
   flg = false;
 }
 if( flg ){
  (共通処理)
 }

 (処理)
 if( flg ){    // 再度分岐が必要な場合に有利
  (共通処理)
 }