foo通过引用引用vec,你不能改变const.因此要么删除调用setBool的行,要么如果你真的要设置bool,请将参数类型更改为std :: vector&.
或者对实现更加严格......你看,这两个函数存在:
T& vector::operator[](int); T const& vector ::operator[](int) const;
当你在const对象上调用"vec [i]"时,只有第二个有效,所以它被选中.但是这个重载显然会返回T const&,这就是你无法改变的事情.
foo通过引用引用vec,你不能改变const.因此要么删除调用setBool的行,要么如果你真的要设置bool,请将参数类型更改为std :: vector&.
或者对实现更加严格......你看,这两个函数存在:
T& vector::operator[](int); T const& vector ::operator[](int) const;
当你在const对象上调用"vec [i]"时,只有第二个有效,所以它被选中.但是这个重载显然会返回T const&,这就是你无法改变的事情.