Kompilierfehler beim Kombinieren von Lambda-Captures

7

Jemand hat mich gefragt, warum dieser Code nicht kompiliert:

%Vor%

Ich habe in Visual Studio 2017 und mit Wandbox für gcc HEAD 8.0.0 201708 eingecheckt und es ist wahr, es kompiliert nicht.

Der erste gcc Fehler ist nur:

%Vor%

in der Zeile mit dem Lambda, und es beschwert sich über die = in der Capture-Klausel.

Was stimmt nicht mit dem Code?

    
Kate Gregory 06.08.2017, 19:46
quelle

2 Antworten

14

Für ein Lambda muss die Standarderfassung zuerst erfolgen.

%Vor%

Live-Demo

    
AndyG 06.08.2017, 19:50
quelle
5

Nur um Andys Antwort zu ergänzen, hier ist die Standardreferenz:

[expr.prim.lambda / 1]

%Vor%

Beachten Sie insbesondere, dass die Grammatik, wenn das Lambda-Capture sowohl eine Standard-Capture- als auch eine Capture-Liste enthält, in der obigen Reihenfolge erscheinen muss.

    
StoryTeller 06.08.2017 20:16
quelle

Tags und Links