使用模板定义位集的大小

nnr*_*les 1 c++ templates bitset

我有一堂课

template <class MAX> 
class A 
{
   std::bitset<MAX> _mem ; 
}
Run Code Online (Sandbox Code Playgroud)

此类的目的是使我可以拥有可变长度的位集。在我程序的不同部分中使用。

但是c完成给我错误

template argument for non type template parameter should be an expression
Run Code Online (Sandbox Code Playgroud)

Edw*_*nge 5

所述bitset模板期望一个恒定积分表达式,而不是一个类型。尝试这个:

template < size_t MAX >
class A { std::bitset<MAX> _mem; };
Run Code Online (Sandbox Code Playgroud)