我认为std::bitset<0> myBS
的大小为0
,而std::cout << sizeof(myBS)
打印1
。有人可以解释一下吗?这是否意味着bitset永远不能为空?
答案 0 :(得分:4)
sizeof
在C ++中永远不会返回零。对象的大小至少为一(除了空基类的情况)。如果不是这种情况,那么您可以拥有一个对象数组,其中所有对象都将存储在同一地址。
无论如何,sizeof(std::bitset<N>)
的价值实际上是无关紧要的。 std::bitset<N>
类为N
位序列提供接口。如果N
= 0,则标准保证此接口正好为0位。无论物体有多大,都是如此。无论该对象中有多少位,您只能使用其中的0位。