c++ - std::bitset<0> 的大小?

c++ - size of std::bitset<0>?

我以为 std::bitset<0> myBS 的大小是 0,而 std::cout << sizeof(myBS) 打印出 1。谁能给我解释一下吗?这是否意味着位集永远不能为空?

sizeof 在 C++ 中永远不能 return 为零。对象的大小至少为 1(空基 classes 的情况除外)。如果不是这种情况,那么您可以拥有一个对象数组,其中所有对象都将存储在同一地址。

sizeof(std::bitset<N>) 的值实际上是无关紧要的。 std::bitset<N> class 为 N 位序列提供了一个 接口 。如果 N = 0,则标准保证此接口恰好为 0 位。无论对象有多大,都是如此。无论该对象中有多少位,您都只能使用其中的 0 个。