Разница между ScopeGuard11 и Boost.ScopeExit - просто обратная совместимость?

Недавно я смотрел выступление Андрея Александреску в "C++ и после 2012 года" ( Обработка систематических ошибок с C++), в котором он обсуждает свою конструкцию ScopeGuard11, и в частности SCOPE_EXIT (вторая часть доклада или просто прочитайте код здесь). В то же время я начинаю изучать библиотеку Boost и заметил, что BOOST_SCOPE_EXIT макрос ( библиотека Boost.ScopeExit).

Эти два, кажется, совершенно разные по реализации (BOOST_SCOPE_EXIT использования Boost.TypeOfничего подобного в ScopeGuard11 SCOPE_EXIT); и макрос Boost связан с захватом параметров и т. д., что является меньшей проблемой в C++11; но помимо этого, они, кажется, предлагают практически одинаковую функциональность.

Я прав или я что-то упустил? Можно ли сказать, что ScopeGuard11 является "более чистым" механизмом с той же функциональностью Boost.ScopeGuard, но с меньшей обратной совместимостью?

0 ответов

Другие вопросы по тегам