Ich habe versucht, einen Lambda-Vektor zu erstellen, bin aber gescheitert:
auto ignore = [&]() { return 10; }; //1
std::vector<decltype(ignore)> v; //2
v.push_back([&]() { return 100; }); //3
Bis zu Zeile 2 wird es gut kompiliert . Die Zeile 3 gibt jedoch einen Kompilierungsfehler aus :
Fehler: Keine Übereinstimmungsfunktion für den Aufruf von 'std :: vector <main () :: <lambda () >> :: push_back (main () :: <lambda ()>)'
Ich möchte keinen Vektor von Funktionszeigern oder einen Vektor von Funktionsobjekten. Ein Vektor von Funktionsobjekten, die echte Lambda-Ausdrücke einkapseln , würde jedoch für mich funktionieren. Ist das möglich?