5

重複の可能性:
テンプレート メタプログラミング - Enum Hack と Static Const の使用の違い

enumパワーテンプレートの次の実装で使用されるものを説明してください。

template<int B, int N>
struct Pow {
    // recursive call and recombination.
    enum{ value = B*Pow<B, N-1>::value };
};

template< int B >
struct Pow<B, 0> {
    // ''N == 0'' condition of termination.
    enum{ value = 1 };
};
int quartic_of_three = Pow<3, 4>::value;

ウィキペディアで見つけました。この場合、intとの間に違いはありますか?enum

4

1 に答える 1

6

のアドレスを取得しようとすると、違いが生じる可能性がありますstatic const int。その場合、コンパイラはstatic const int. an のアドレスを取得することはできずenum、コンパイラはそのためのストレージを生成しません。

テンプレート メタプログラミング - Enum Hack と Static Const の使用の違いも参照してください。

于 2012-07-14T12:03:54.397 に答える