Middle+
53
0
questionbank

Что такое строгая гарантия исключений в C++ и как она применяется?

Answer from sobes.tech neural network

Строгая гарантия исключений (strong exception guarantee) означает, что в случае выброса исключения состояние программы остается неизменным (rollback) по отношению к началу операции, либо операция успешно завершается. Иначе говоря, если операция не смогла завершиться успешно, то она гарантирует откат всех произведенных изменений.

Для обеспечения строгой гарантии часто используют идиому "копирование и обмен" (copy-and-swap):

  1. Копируем данные
  2. Выполняем операцию над копией
  3. Атомарно обмениваем (swap) текущие данные с измененной копией

Пример:

c

Строгая гарантия исключений (strong exception guarantee) означает, что в случае выброса исключения состояние программы остается неизменным (rollback) по отношению к началу операции, либо операция успешно завершается. Иначе говоря, если операция не смогла завершиться успешно, то она гарантирует откат всех произведенных изменений.

Для обеспечения строгой гарантии часто используют идиому "копирование и обмен" (copy-and-swap):

  1. Копируем данные
  2. Выполняем операцию над копией
  3. Атомарно обмениваем (swap) текущие данные с измененной копией

Пример:

c

Register or sign in to get access to full answers for all questions from the question bank.

c++exception-safetyexception-handlingraii