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 个。
我以为 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 个。