我想知道在使用模板元编程技术时,使用静态常量和枚举hack有什么不同。
例如:(Fibonacci通过TMP)
template< int n > struct TMPFib {
  static const int val =
    TMPFib< n-1 >::val + TMPFib< n-2 >::val;
};
template<> struct TMPFib< 1 > {
  static const int val = 1;
};
template<> struct TMPFib< 0 > {
  static const int val = 0;
};与
template< int n > struct TMPFib {
  enum {
    val = TMPFib< n-1 >::val + TMPFib< n-2 >::val
  };
};
template<> struct TMPFib< 1 > {
  enum { val = 1 };
};
template<> struct TMPFib< 0 > {
  enum { val = 0 };
};为什么要使用一个而不是另一个呢?我读到过在类内部支持静态常量之前就使用过枚举攻击,但是为什么现在要使用它呢?
https://stackoverflow.com/questions/2172647
复制相似问题