【发布时间】:2014-12-10 22:51:28
【问题描述】:
我在 std::vector 上有一些类模板:
template<typename T>
class MyClass{
public:
// public methods;
private:
std::vector<T> buffer_;
// private methods and members
};
这是我的课程的简化版本。内部vector在这里用作排序缓冲区,不同的IO操作,依赖于它的单个内存块实现,例如fstreams自定义缓冲区和缓冲区大小仅在运行时知道。
一切都好,但vector<bool> 实例化绝对不适合这样的目的。我想在我的班级中有vector<char> 或vector<uint8_t> 而不是vector<bool> 实例化。我也不能使用其他库,如 boost、标准库。
有什么解决办法吗?
【问题讨论】:
-
STL 的意思是c++-standard-library,对吧?
-
@remyabel 是的,我是。 STL 只是标准库的一部分,你是对的
-
@vard 为什么你认为你自己的
std::vector<bool>专业化可以做得更好,因为它已经可以从 c++ 标准库中获得? -
他可能需要vector
专业化中没有的数据、emplace和emplace_back -
@πάντα 我只希望这种专业化中的每个 bool 在我的向量中跨越 1 个字节。