我看到一种情况,矢量元素的类型从int
更改为bool
,导致代码停止编译。我想念什么?
此代码可以正常编译:
#include <vector>
int main()
{
std::vector<int> v(10);
for (auto& e : v) e = 1;
}
在编写此代码时,编译器(VC ++ 2017)抱怨常量不匹配:
#include <vector>
int main()
{
std::vector<bool> v(10);
for (auto& e : v) e = true;
}
我意识到切换到auto&&
可以解决此问题,但是我很乐意为您解释为什么。