2014-10-13 2 views
1

Я изучаю код на C++, который использует библиотеку boost. И есть некоторый код, как это:Что означает этот символ "[=]" в C++?

getService().post([=] {...}) 

GetService() является функцией, которая возвращает io_service библиотеки буст. Я хочу знать, что означает этот символ «[=]» в C++?

+0

Читайте на лямбда-выражениях на C++. – DuckMaestro

+0

http://symbolhound.com/?q=%5B%3D%5D+c%2B%2B – chris

+0

большое спасибо !!! – kylejan

ответ

5

Это означает, что выражение лямбда фиксирует значения по назначению. Другой вариант - захватить по ссылке с помощью [&]. На этом есть много вариаций, вместо того, чтобы перечислять их здесь, я укажу вам на этот качественный ответ: What is a lambda expression in C++11?

+0

'[]' ничего не фиксирует, '[&]' захватывает все по ссылке, '[a, & b]' захватывает только некоторые переменные – o11c

Смежные вопросы