На собеседовании задали вопрос - Что делает данный код?
int main(){[](){}();}
Ответы
Ответ 1
Правильный ответ: ничего не делает.
А означает он следующее:
int main() // Функция main без аргументов.
{
[] // Объявление лямбда-функции без списка захвата...
() // ... с пустым списком аргументов ...
{} // ... и пустым телом, ...
(); // ... которая тут же вызывается.
}
Ответ 2
Данная программа просто возвращает 0 в вызывающую программу. Находящийся в теле программ
вызов лямбда-выражения может быть проигнорирован, то есть для него не будет сгенерировано никакого объектного кода, так как это выражение не имеет побочных эффектов.
Поэтому программа не имеет смысла.
Ответ 3
Как уже все ответили -- пустая лямбда.
А использоваться может в каком-нибудь configure, перед сборкой переносимого проекта для уточнения свойств системы при автоматической генерации, например, configure.h
Ответ 4
Судя по всему объявляет пустую лямбда-функцию и выполняет ее.
Комментариев нет:
Отправить комментарий