小编Her*_*ort的帖子

lambda表达式中没有匹配的成员函数错误?

这对我来说是一个很奇怪的错误.检查以下代码:

void test(void){
    vector<string> v;
    v.push_back("hello");
    auto fn=[=](){
        v.push_back("world");
    };
}
Run Code Online (Sandbox Code Playgroud)

第一个push_back方法传递了编译但第二个失败了,产生了错误:

错误:没有匹配的成员函数来调用'push_back'

编译器说明是:

**注意:(687,36)候选函数不可行:'this'参数的类型为'const vector'(又名'const vector,allocator >>')

但该方法没有标记const**.
好吧,我没有使用任何const参数,我无法弄清楚编译器试图告诉我什么.有人能帮助我吗?

c++ lambda c++11

5
推荐指数
1
解决办法
554
查看次数

标签 统计

c++ ×1

c++11 ×1

lambda ×1