MyTetra Share
Делитесь знаниями!
Синтаксис лямбда выражения с языке C++
Время создания: 25.04.2022 13:38
Текстовые метки: c++, лямбда, синтаксис
Раздел: Компьютер - Программирование - Язык C++ (Си++)
Запись: xintrea/mytetra_syncro/master/base/1650883083n4fqbw3zch/text.html на raw.github.com

С точки зрения синтаксиса, лямбда-выражение имеет следующую структуру:





Где:


1 - Маска переменных

2 - Список параметров

3 - Изменение параметра, переданного по значению

4 - Спецификация исключения

5 - Возвращаемый тип

6 - Тело лямбда выражения



Маска переменных


Лямбда выражение может получать доступ практически к любым переменным и использовать их внутри тела. Снимок определяет способ получения параметров телом лямбда выражения. Доступ к переменным, перед которыми стоит амперсанд (&), осуществляется по ссылке, а перед которыми нет амперсанда, соответственно по значению. Пустая маска ([]) означает, что тело выражения не имеет доступа к переменным.


Стандартная маска определяет, получаем ли мы доступ к переменной по ссылке или же по значению. Устанавливая “&”, все значения будут получены по ссылке. Используя же“=”, переменные будут получены по значению. Например, если тело лямбда выражения получает доступ к внешней переменной “total” по ссылке и переменной “factor” по значению, маска должна быть записана следующим образом:


??? - нет картинки


Также, вы можете использовать лямбда выражение внутри метода класса. Передавая указатель “this”, вы можете получить доступ к методам и членам данного класса.



Список параметров


Список параметров лямбда выражения содержит список параметров для функции, у которых существуют следующим ограничения:


1) Список параметров не может содержать значения по умолчанию

2) Не может содержать неименованные параметры

3) Ограниченное число параметров


Также лямбда выражение может принимать в качестве параметра другое лямбда выражение. С другой стороны, список параметров является опциональным элементов, и можно писать выражение, не включая его.



Изменение параметра переданного по значению


Спецификация позволяет разрешить телу лямбда выражения и заменить переменные, полученные по значению.



Спецификация исключений


Лямбда выражения может включать в себя спецификацию исключения, которая позволяет телу не создавать исключения.



Возвращаемый тип


Спецификация определяет возвращаемый тип лямбда выражения. Вы можете не использовать данную конструкцию, если тело выражения имеет только одну инструкцию “return” или не возвращает значения вообще. Если тело содержит только одну “return” инструкцию, компилятор установит возвращаемый тип лямбда выражения идентичный типу “return” инструкции.



Тело лямбда выражения


На тело выражения накладываются идентичные ограничения, как на блок кода или метод.



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования