获取非专用std :: vector <bool>容器的标准方法

Dan*_*nra 7 c++ vector c++17

有没有一种标准的方法(或者至少是半标准的,在所有流行的编译器中实现)来获得一个非专业的,非优化的,连续的std::vector<bool>容器?

我有一些处理std::vectors的通用代码,它们假设它们都是这样的标准连续容器.我目前的解决方法是使用std::vector<int>只存储0和1的a,这是我想要的内容,但是拥有正确的矢量类型会更好.

Jar*_*d42 7

作为解决方法,您可能会使用其他类型,请char记住.否则你可以写一个包装器bool,例如:

struct my_bool
{
    operator bool() const { return b; }
    operator bool&() { return b; }

    bool b;
};
Run Code Online (Sandbox Code Playgroud)