标准的大小::位集<0>?

size of std::bitset<0>?

本文关键字:gt lt 位集 标准      更新时间:2023-10-16

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

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

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