Lambda functions (починаючи з C 11)
Створює замикання: безіменний об'єкт-функцію, здатний захоплювати змінні контекст.
Зміст
[ред.] Синтаксис
3) Опущений тип, що повертається в кінці: повертається тип замикання operator() виводиться відповідно до наступних правил:
- якщо body складається з одного оператора return , то тип, що повертається є типом повертається виразу (після неявного перетворення rvalue до lvalue, масиву до покажчика, або функції до покажчика)
- Інакше повертається тип void
4) Пропущено список параметрів: функція не приймає аргументів, якби список параметрів був()
[ред.] Пояснення
Список символів може бути переданий таким чином:
- [a,&b]деaзахоплена за значенням, аbзахоплена за посиланням.
- [this]захоплює покажчикthisза значенням.
- [&]захоплення всіх символів за посиланням
- [=]захоплення всіх символів за значенням
- []нічого не захоплює
Closure types не CopyAsignable.
Покровитель implicitly-declared.
Type of each data member is the type of the corresponding captured entity, except if the entity has reference type (in that case, references to functions are captured as-is, and references to objects are captured as copies of referenced objects).