【发布时间】:2016-07-01 15:23:27
【问题描述】:
以下代码行给出错误:
std::vector<std::string> strVect;
auto pushToVector = [strVect] () {
strVect.push_back(std::string("Hi"));
};
pushToVector ();
错误 C2663: 'std::vector<_ty>::push_back' : 2 个重载对 'this' 指针没有合法转换
但是当我在 lambda 中通过引用传递 strVect 时没有错误。
std::vector<std::string> strVect;
auto pushToVector = [&strVect] () {
strVect.push_back(std::string("Hi"));
};
pushToVector ();
没有错误
请告诉我为什么我们在第一个场景中会出错?
【问题讨论】: