Это то что я имел в виду под "они не сохраняют жизнь пойманным локальным переменным при выходе из функции".
Более серьезная имплементация делала бы одно из двух: - копировала переменные, использованные во вложенной функции, для ее использования (так в лямбдах C++11) - создавала именно эти переменные не на стэке, а в куче, и давала им жить после выхода из функции (это формально говоря не нарушает стандарт, я думаю, но реально слишком сильно нарушает сложившиеся конвенции, чтобы всерьез рассматривать эту возможность)
no subject
Более серьезная имплементация делала бы одно из двух:
- копировала переменные, использованные во вложенной функции, для ее использования (так в лямбдах C++11)
- создавала именно эти переменные не на стэке, а в куче, и давала им жить после выхода из функции (это формально говоря не нарушает стандарт, я думаю, но реально слишком сильно нарушает сложившиеся конвенции, чтобы всерьез рассматривать эту возможность)