Middle
20
0
questionbank

Какие гарантии безопасности ты знаешь?

Ответ от нейросети sobes.tech

Гарантии безопасности в C++11 и более поздних версиях делятся на три типа:

  1. Базовая гарантия (Basic Guarantee): Если функция завершается, то программа остается в корректном, но, возможно, неопределенном состоянии. Никаких утечек ресурсов не происходит, но данные могут быть частично изменены. Если функция завершается исключением, то ресурсы, полученные внутри функции до исключения, освобождаются.

  2. Строгая гарантия (Strong Guarantee): Если функция завершается, то ее состояние либо полностью соответствует успешному завершению, либо остается неизменным, как до вызова, если функция завершилась исключением. Это подразумевает отказоустойчивость (rollback).

  3. Гарантия отсутствия исключений (No Except Guarantee): Функция гарантированно не выбрасывает исключений. Может завершиться успешно или аварийно (например, путем std::terminate), но не через механизм исключений C++.

Примеры:

  • Для строгой гарантии часто применяется copy-and-swap идиома:
    c

Гарантии безопасности в C++11 и более поздних версиях делятся на три типа:

  1. Базовая гарантия (Basic Guarantee): Если функция завершается, то программа остается в корректном, но, возможно, неопределенном состоянии. Никаких утечек ресурсов не происходит, но данные могут быть частично изменены. Если функция завершается исключением, то ресурсы, полученные внутри функции до исключения, освобождаются.

  2. Строгая гарантия (Strong Guarantee): Если функция завершается, то ее состояние либо полностью соответствует успешному завершению, либо остается неизменным, как до вызова, если функция завершилась исключением. Это подразумевает отказоустойчивость (rollback).

  3. Гарантия отсутствия исключений (No Except Guarantee): Функция гарантированно не выбрасывает исключений. Может завершиться успешно или аварийно (например, путем std::terminate), но не через механизм исключений C++.

Примеры:

  • Для строгой гарантии часто применяется copy-and-swap идиома:
    c

Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.

securityguaranteessystems-designcryptographyauthenticationauthorizationdata-integrity