在编译时初始化 c++ std::bitset

Moz*_*zbi 5 c++ templates constexpr c++11

我试图std::bitset<256>在编译时用它的一些索引初始化 a ,比如 50-75 和 200-225 设置为 1。

基于http://en.cppreference.com/w/cpp/utility/bitset/bitset 看起来我的 2 个选项是:

constexpr bitset();
constexpr bitset( unsigned long long val ); 
Run Code Online (Sandbox Code Playgroud)

考虑到第二个构造函数不适用于大型索引,有人可以阐明我将如何初始化我的位集吗?

小智 0

您可以使用以字符串作为参数的构造函数并以这种方式初始化它。

例如。以下行将初始化b0000000101111001

std::bitset<16> b (std::string("0101111001"));
Run Code Online (Sandbox Code Playgroud)

  • 当然,这不是一个 `constexpr` 构造函数。OP 需要 `constexpr` 来进行编译时初始化。 (11认同)

归档时间:

查看次数:

3336 次

最近记录:

4 年,7 月 前