Страницы

Поиск по вопросам

воскресенье, 24 ноября 2019 г.

Что делает код int main(){[](){}();}


На собеседовании задали вопрос - Что делает данный код?

int main(){[](){}();}

    


Ответы

Ответ 1



Правильный ответ: ничего не делает. А означает он следующее: int main() // Функция main без аргументов. { [] // Объявление лямбда-функции без списка захвата... () // ... с пустым списком аргументов ... {} // ... и пустым телом, ... (); // ... которая тут же вызывается. }

Ответ 2



Данная программа просто возвращает 0 в вызывающую программу. Находящийся в теле программ вызов лямбда-выражения может быть проигнорирован, то есть для него не будет сгенерировано никакого объектного кода, так как это выражение не имеет побочных эффектов. Поэтому программа не имеет смысла.

Ответ 3



Как уже все ответили -- пустая лямбда. А использоваться может в каком-нибудь configure, перед сборкой переносимого проекта для уточнения свойств системы при автоматической генерации, например, configure.h

Ответ 4



Судя по всему объявляет пустую лямбда-функцию и выполняет ее.

Комментариев нет:

Отправить комментарий