
C++
- 139 ответов
- 0 вопросов
157
Вклад в тег
Вот если указано return 0; - то программа закончиться.Я правильно понимаю?Только если это return в main().
А если ничего не указать?Она будет в памяти висеть или что?С 1998 года она выполнит return 0 (опять же, справедливо только для main() ) как только достигнет конца функции main().
Т.е. если указываешь 0, то это типа false.Это EXIT_SUCCESS.
А если указать 1?Implementation defined. Обычно работает так же как и EXIT_FAILURE.
Вот так делать - это нормально?Вполне
И что в таком случае возвращается, указатель на функцию или сама функция?Функциональный объект. Лямбда — не функция, она может быть приведена к указателю на функцию в некоторых случаях.
Если возвращается указатель, то где хранится сама функция, в куче или стеке?«Функция» лямбды хранится там же, где и остальной код. На лету ничего не собирается и не компилируется. Лямбда это синтаксический сахар для объявления класса с перегруженым оператором вызова функции.
И еще один вопрос, по этой же теме:lambda имеет уникальный тип. Это не функция (но может быть приведена к ней в данном случае).
Это сокращенная запись вот такой конструкции:
Или что то другое?