为什么通过模板实现bitset

Why bitset is implemented by template?

本文关键字:实现 bitset 为什么      更新时间:2023-10-16

定义带有16位的比特斯特,就像:

std::bitset<16> bs(0x123);

如果让我设计一个比特斯特课,我可能会这样做:

mine::bitset bs(16, 0x123);

是否有任何理由通过模板实现std :: bitset?

这是我们应该在某些情况下应用的好模式吗?

是否有任何理由通过模板实现std :: bitset?这是我们应该在某些情况下应用的好模式吗?

因为std::bitset被设计为 static bitset。在某些情况下,编译时大小将非常有帮助,尤其是对编译器的编译器,以优化您的程序。如果您想要 dynamic bitset,则可以使用boost::dynamic_bitset。就像有std::arraystd::vector一样,总是有一个静态大小的容器和动态尺寸的容器的地方。