EP>Библиотека позволяет определить в каких случаях реально опасно кидать исключение из деструктора. То есть когда исключение покинувшее деструктор может привести к вызову std::terminate. EP>В результате, возможно достичь такого же эффекта, как ручная расстановка ".close()" в конце блока, автоматически.
Как быть с ситуациями, когда вызывающий деструктор код рассчитывает на то, что из деструктора не полетит исключение?
Тот же Саттер, рассуждая о безопасности исключений приходит в выводу, что полной безопасности не получится достичь,
не имея гарантии отсутствия исключений для некоторых функций. Деструктор входит в число этих функций.
Ну или более конкретно, как разрулится такая ситуация:
есть непустой стандартный контейнер объектов. он вышел из скоупа и позвался его деструктор.
он начал звать деструкторы у содержащихся в нем объектов, которые делают важные вещи, правильно распознают
контекст вызова деструктора (по исключению или нет) и если не по исключению, то могут бросить его.
допустим исключение бросил первый же деструктор объекта. деструкторы остальных объектов не позвались.
в результате имеем утечку. или там это как-то хитро разруливается?