45 votes

Que signifie "[ceci]" en C ++?

Quand je lisais le `` API, j’ai trouvé quelque chose comme ceci :

Que signifie veux dire ? Est cette nouvelle syntaxe dans ?

57voto

Mike Seymour Points 130519

Qu'est-ce que [cette] signifie?

Elle introduit un lambda - un callable fonction de l'objet. Mettre this dans les parenthèses signifie que le lambda capture this, de sorte que les membres de cet objet sont disponibles. Les Lambdas peuvent également capturer des variables locales, par valeur ou par référence, comme décrit dans la page liée.

Le lambda a une surcharge de operator(), de sorte qu'il peut être appelée comme une fonction:

Event * event = some_event();
listener(event);

qui va exécuter le code défini dans le corps de la lambda.

Est-ce une nouvelle syntaxe en C++11?

Oui.

0voto

Test Points 9555

C'est Lambda et vous pouvez la liaison de l'instance courante.Aussi cela signifie que la valeur en thisimportant. Pour lamda vous pouvez le voir:

Qu'est ce qu'une lambda expression en C++11?

http://www.cprogramming.com/c++11/c++11-lambda-closures.html

http://msdn.microsoft.com/en-us/library/dd293608.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X