5

可能的重复:
模板元编程 - 使用 Enum Hack 和静态常量之间的区别

请解释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 和静态常量之间的区别

于 2012-07-14T12:03:54.397 回答