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

时间:2016-03-01 23:35:33

标签: c++ bitset

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

1 个答案:

答案 0 :(得分:4)

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

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