Behebung von GCC-Fehler 'the lambda has no capture-default'
English
Deutsch
Bei einem GCC-Fehler wie diesem:
gcc_lambda_error.txt
error: the lambda has no capture-defaultist die Behebung meist recht einfach. Suche nach einer Lambda-Funktion, die eine Variable wie folgt einfängt:
lambda_capture_example.cpp
[&myVar] (/* ... */) {/* ... */}&myVar bedeutet „myVar per Referenz einfangen“.
In den meisten Fällen kannst du einfach alle lokalen Variablen mit einer Capture-Default einfangen:
lambda_capture_all_example.cpp
[&] (/* ... */) {/* ... */}In seltenen Fällen hat dies unbeabsichtigte Nebeneffekte, da du nun alle Variablen per Referenz einfängst, obwohl du einige per Kopie einfangen möchtest — prüfe also deinen Code sorgfältig.
Beachte, dass dieser Fehler von der GCC-Version abhängt. Bei mir hat die Verwendung von GCC 7.2 den Fehler behoben.
Check out similar posts by category:
C/C++, GCC Errors
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow