C ++ 11 — Что это [это] в C ++ / CX? (Windows 8)

я следую этот руководство, и я попадаю в эти части кода, которые включают в себя термин [this] (Просто Ctrl-F; вы поймете, что я имею в виду).

Я не уверен, что это C ++ или C ++ / CX, но, в любом случае, я не знаю, что это такое.

Что это?

1

Решение

Это называется «лямбда-замыкание» и говорит, что текущий экземпляр (this) должен быть передан в лямбда-тело (позволяющее вам использовать его переменные и вызывать его методы).

Эта страница дает хорошее резюме лямбда-замыканий:
http://www.cprogramming.com/c++11/c++11-lambda-closures.html

[] Ничего не захватывает (или стратегия выжженной земли?)
[&] Захват любой ссылочной переменной по ссылке
[=] Захватить любую указанную переменную, сделав копию
знак равно &foo] Захватить любую указанную переменную, сделав копию, но перехватить переменную foo по ссылке
[bar] Захватить бар, сделав копию; не копируйте больше ничего
[this] Захватите указатель this класса, включающего в себя

6

Другие решения

Это синтаксис для лямбда-анонимная функция который захватывает членов класса, где он определен. Это C ++ 11.

3