次のようなビットマスクがいくつかあります。
namespace bits {
const unsigned bit_one = 1u << 0;
const unsigned bit_two = 1u << 1;
const unsigned bit_three = 1u << 2;
......
const unsigned bit_ten = 1u << 10;
}
より多くのビットがあり、名前が実際に私のプログラムにとって意味のあるフラグであることを除いて。しかし、ビットを削除したり、ビットを追加したり、同様のビットを再グループ化したりすることもあります。理想的には、次のようなことができます。
namespace bits {
const unsigned bit_one = 1u << COUNTER;
const unsigned bit_two = 1u << COUNTER;
const unsigned bit_three = 1u << COUNTER;
......
const unsigned bit_ten = 1u << COUNTER;
}
このプロセスを自動化するテンプレート/マクロはありますか? については知って__COUNTER__
いますが、これはヘッダーであるため、使用している他のソースに含まれている__COUNTER__
と壊れる可能性があります。私は C++11 より前のフレームワークで作業しているため、最終的にはコンパイラのアップグレードが行われますが、C++11 を使用しないソリューションが理想的です。