Разница между 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, но с меньшей обратной совместимостью?

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]