Questo è un errore piuttosto strano per me. Controllare il codice qui sotto:Nessun errore di funzione membro corrispondente nell'espressione lambda?
void test(void){
vector<string> v;
v.push_back("hello");
auto fn=[=](){
v.push_back("world");
};
}
Il primo metodo push_back superato la compilazione ma il secondo non è riuscito, ottenendo l'errore:
Error:no matching member function for call to 'push_back'
La nota compilatore è:
**Note:(687, 36) candidate function not viable: 'this' argument has type 'const vector' (aka 'const vector, allocator > >')
Ma il metodo non è contrassegnato const**
.
Beh, non sto usando alcun argomento const e non riesco a capire cosa stia cercando di dirmi il compilatore. Qualcuno potrebbe aiutarmi?
Probabilmente si desidera acquisire anche per riferimento. – NathanOliver
@NathanOliver: non "bene", ma piuttosto "invece". –
Ah si. Invece, in effetti, – NathanOliver