Gri*_*wes 4 c++ language-lawyer
23.2中的C++标准草案n3242,在包含容器要求的表中,声明X::reference对于包含容器T必须是lvalue T.然而,因为vector<bool>,vector<bool>::reference是另一个类,用于访问存储在向量中的单个字节位的代理.
这是否意味着标准中定义的std::vector类模板规范T = bool无法满足容器要求?
Jam*_*lis 10
这是否意味着标准中定义的
std::vector类模板规范T = bool无法满足容器要求?
是.
类似地,它的迭代器不是真正的随机访问迭代器,因为它operator*产生一个代理对象.
vector<bool> 是一个烂摊子.