Интернет магазин китайских планшетных компьютеров



Компьютеры - Идиома copy-and-swap - Другие операции

15 мая 2011


Оглавление:
1. Идиома copy-and-swap
2. Другие операции



Имея функцию-член swap, не генерирующую исключений, можно применять подобную технику, чтобы сделать любую операцию над объектом строгой в отношении к гарантиям безопасности исключений.

Для этого сначала делают копию существующего объекта, выполняют над копией необходимые модификации, а потом меняют *this и временный объект.

  • если исключение генерирует конструктор копирования, то исходный объект не модифицируется и строгая гарантия безопасности исключений выполняется;
  • если исключение генерируется при изменении временного объекта, то у временного объекта вызовется деструктор и гарантия тоже будет выполнена поскольку исходный объект модифицирован не был;
  • если изменение временного объекта успешно отработало, то срабатывает swap и деструктор временного объекта, не генерирующие исключений.


Просмотров: 1647


<<< Интерпретатор (шаблон проектирования)