Ответ 1
[=]
, о котором вы говорите, является частью списка захвата для выражения лямбда. Это говорит С++, что код внутри выражения лямбда инициализирован так, что лямбда получает копию всех локальных переменных, которые она использует при ее создании. Это необходимо, чтобы лямбда-выражение могло ссылаться на factor
и offset
, которые являются локальными переменными внутри функции.
Если вы замените [=]
на []
, вы получите ошибку компилятора, потому что код внутри выражения лямбда не будет знать, что означают переменные offset
и factor
. Многие компиляторы дают хорошие сообщения об ошибках диагностики, если вы это делаете, поэтому попробуйте и посмотрите, что произойдет!