Seltsame C ++ Syntax

8

Ich habe 8 Jahre Programmiererfahrung, aber ich habe noch nie den Operator [] als Parameter für die Funktionsdefinition gesehen.

Zum Beispiel der folgende Code (aus einem Open-Source-Projekt):

%Vor%

Während meiner Programmierlebensdauer habe ich [] immer als Operator-Überlader definiert, nicht als Parameter.

Also, was bedeutet diese neue Syntax?

Ich verwende den Compiler, der mit Visual Studio 2003 geliefert wird. Wie kann ich den obigen Code ändern, damit er in VS 2003 kompiliert wird?

    
Arjun 24.07.2011, 05:57
quelle

3 Antworten

16

Das ist ein C ++ Lambda Sie könnten den Code durch ein Funktionsobjekt desselben ersetzen Definition. Der Link zeigt zwei Beispiele, wobei einer Functor und einer einen Lambda verwendet.

    
rerun 24.07.2011 06:00
quelle
5

Es sieht wie die C ++ 0x -Syntax für anonyme Funktion

    
Rob Agar 24.07.2011 06:01
quelle
5

Wie andere Antworten schon erwähnt haben, ist es eine brandneue Syntax, um C ++ 0x Lambda zu unterstützen. Es wird in keiner Version von Visual Studio vor VS 2010 unterstützt. Um also dieses Code-Snippet in VS 2003 zu verwenden, müssen Sie den Code erneut verwenden, um ein Funktions- oder Funktorobjekt zu verwenden.

Ich denke, dass etwas wie das Folgende für Sie funktionieren könnte:

%Vor%     
Michael Burr 24.07.2011 06:16
quelle