我可以有爲什麼模板聲明中的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