4

厳密に型指定された列挙型の列挙子をフラグとして (組み合わせて) 使用できる小さなクラスを作成しました。基になる型の検出に type_traits を使用しているため、わずかに型安全であり、ほとんどがコンパイル時に処理されるはずです。とはいえ、本当にお得かどうかは疑問でした。

私は今のようなものを書くことができます

void Foo(Flags<Mode> Value);

プログラマーは、Mode の列挙子 (Mode::Read など) のみを使用でき、他の列挙型を Mode と組み合わせることができないことがわかります。よりも良い方法だと思いますか

void Foo(int Mode);

、人々がそれを評価できるかどうかはわかりませんか?

4

1 に答える 1

7

あなたが提案していることは、ベストプラクティスと見なされます。

最新の最適化コンパイラを使用すると、パフォーマンス コストは発生しません。

于 2012-08-02T15:58:08.237 に答える