Запуск лямбды при выходе из области видимости кажется такой простой вещью, что я ожидаю, что она будет стандартизирована. Такие вещи, как unique_ptr
, лучше, когда они применимы, но я обнаружил, что существует бесконечный запас «одноразовых» деструкторов, особенно при использовании библиотек в стиле C. Кто-нибудь знает, грядет ли это?
Будет ли стандартизирована идиоматическая защита/выход из области видимости?
Ответы (2)
n4189 — это предложение добавить make_scope_exit
оболочки, и другие подобные обработчики ресурсов для языка. Он основан на относительно известном выступлении scope_guard
.
Самый последний «текущий статус бумаги» от LWG относится к 2013 году, до указанной выше даты.
Содержимое C++1z (надеюсь, C++17) еще предстоит определить.
статус C++1z для clang не упоминает об этом. C++1z TS для clang не упоминает об этом.
Сама статья содержит пример реализации. Я не знаю, на каких лицензионных условиях он находится.
person
Yakk - Adam Nevraumont
schedule
22.05.2015
Оно похоже прошло проверку LEWG, но, похоже, перед его можно принять. Формулировка N4189 довольно плохая.
- person T.C.; 23.05.2015
Похоже, что текущая версия выходного документа, P0052, войдет в Основы Библиотеки версии 3 для возможного принятия в Post-C++17. стандарт.
Короче говоря, для С++ 17 этого не произойдет. Извини.
person
Nicol Bolas
schedule
09.07.2016
Заключительный комментарий, в котором говорится о предложении перенести его на IS. Не могу сказать, произойдет ли это.
- person pepper_chico; 07.01.2017
@pepper_chico Что такое ИС?
- person Jens; 10.05.2017
@Jens: Международный стандарт. Не получилось, кстати.
- person Nicol Bolas; 10.05.2017
Auto
) - person Barry   schedule 22.05.2015Auto
:) - person Barry   schedule 03.08.2015