我可以有为什么模板声明中的size_t参数需要为const?
std::bitset<10> bitsetA;
或
const size_t LengthB = 20;
std::bitset<LengthB> bitsetB;
没有任何问题。
但是,如果长度不const
size_t LengthC = 30;
std::bitset<LengthC> bitsetC; // Line 30, say
我面临以下编译错误
'LengthC' cannot appear in a constant-expression
template argument 1 is invalid
是什么原因呢?
如果第30行被接受,那么编译器和用户代码会出现什么问题?是不是因为长度C可能有别名?
另一种方法是Boosts'dynamic_bitset':http://www.boost.org/doc/libs/1_42_0/libs/dynamic_bitset/dynamic_bitset.html – 2010-04-24 16:58:29