当类型 int 但是给出"错误C2102:'&'需要l值"当类型是 bool 时。为什么呢?
std::vector<Type> Vector;
Vector.push_back(false);
Vector.push_back(true);
Vector.push_back(true);
const void* Pointer = NULL;
for (std::vector<Type>::const_iterator it = Vector.begin(); it != Vector.end(); ++it)
Pointer = &(*it);
答案 0 :(得分:4)
vector
专门用于bool
,在该专业化中,*it
不是左值。无法指向向量中的单个bool
。
事后看来,这种专业化被视为一种错误。现在通常建议避免使用vector<bool>
。替代方案包括std::bitset
。