[C++] Lambda Ausdrücke

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2659
Registriert: 04.08.2004, 20:06
Kontaktdaten:

[C++] Lambda Ausdrücke

Beitrag von Jonathan »

Ich hab mich mal an C++11 Lambdas rangewagt. Folgendes geht allerdings nicht (VC2010 Prof):

Code: Alles auswählen

void main()
{
	int a,A;
	[=](){a+A;}();
}
error C2086: 'const int &_A': Neudefinition
error C2661: '`anonymous-namespace'::<lambda0>::<lambda0>': Keine überladene Funktion akzeptiert 2 Argumente
Mit a,b funktioniert das ganze. Sind da die Variablen Bezeichner auf einmal nicht mehr Case-sensitive? Fände ich merkwürdig, aber ich hab auf die Schnelle auch nix dazu gefunden.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 5162
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [C++] Lambda Ausdrücke

Beitrag von Schrompf »

Da bist Du wohl über einen seltsamen Compilerfehler gestolpert. Lambdas sind ja noch sehr jung, da wird noch einiges an Detailpflege kommen, vermute ich. Ich hätte ja gedacht, dass das Lambda nicht kompiliert, weil es kein return hat und daher der Compiler den Rückgabewert der anonymen Funktion nicht bestimmen kann. Aber wahrscheinlich nimmt er dann nur void an.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Antworten