Seltsame Verwendung von [] in C ++. Was ist los? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Was ist ein Lambda-Ausdruck in C ++ 11? 8 answersZuerst ist dies keine Scheinfrage über Arrays oder Operator [] -Überladung!
Ich habe versucht, Qt Creator zu kompilieren, und in dieser Methode ist ein Fehler aufgetreten:
static QList<IDocumentFactory*> getNonEditorDocumentFactories()
{
return ExtensionSystem::PluginManager::getObjects<IDocumentFactory>(
[](IDocumentFactory *factory) {
return !qobject_cast<IEditorFactory *>(factory);
});
}
Der Fehler ist:
mainwindow.cpp:748: error: expected primary-expression before ‘[’ token
mainwindow.cpp:748: error: expected primary-expression before ‘]’ token
mainwindow.cpp:748: error: expected primary-expression before ‘*’ token
mainwindow.cpp:748: error: ‘factory’ was not declared in this scope
Ich weiß, dass ich etwas falsch gemacht habe, um Qt Creator zu kompilieren, wahrscheinlich die g ++ Version, aber die Frage ist nicht das.
Ich möchte diesen Code verstehen, weil für mich diese Verwendung von[]
ist syntaktisch falsch. Kann mir bitte jemand erklären, was hier passiert.