Вопросы по теме 'exception-safety'
Можно ли иметь метательную реализацию swap-члена?
Общая рекомендация при написании классов (с использованием идиомы копирования и подкачки) состоит в том, чтобы предоставить функцию члена подкачки без выбрасывания. ( Effective C++, 3-е издание, пункт 25 и другие ресурсы)
Однако что, если я не...
320 просмотров
schedule
08.07.2023
C++ безопасность исключений unordered_map
Я бродил по спецификациям C++ (cplusplus.com) и обнаружил, что там ничего не сказано о безопасности исключений для std::unordered_map.
так что в основном, если я пишу
map["foo"]=5;
и выдается исключение из-за нехватки памяти или bad_alloc,...
787 просмотров
schedule
07.05.2023
Безопасность исключений и make_unique
Просто чтобы уточнить, использование make_unique повышает безопасность исключений только тогда, когда у вас есть несколько распределений в выражении, а не только одно, верно? Например
void f(T*);
f(new T);
совершенно безопасен для...
6395 просмотров
schedule
06.07.2022
Exceptionsafety make_unique: почему исключение f(new T) безопасно
Я читаю GOTW102 и задаюсь вопросом, почему make_unique более безопасен в плане исключений, чем другие случаи, или в подробно, почему f(new T(...)) более безопасен в плане исключений, чем f(new T1(...), new T2(...)) .
Реализация make_unique...
1587 просмотров
schedule
01.03.2023
C++: почему работает этот простой Scope Guard?
До сих пор у каждого взгляда на защиту области действия была логическая переменная защиты. Например, см. это обсуждение: самый простой и аккуратный c++11 ScopeGuard
Но простой сторож работает (gcc 4.9, clang 3.6.0):
template <class C>...
580 просмотров
schedule
30.11.2022
Какова гарантия безопасности исключений для методов получения (по значению)?
Каковы безопасность исключений для следующего примера класса для методов получения?
Предлагают ли такие геттерные методы хотя бы надежную гарантию?
Всегда ли возврат фундаментального типа по значению дает гарантию отсутствия бросков?
class...
128 просмотров
schedule
10.01.2023
Как предотвратить переполнение буфера/переполнение массива?
Недавно я писал код для пользовательского протокола последовательной связи. Что я сделал, так это то, что я использовал часть (8/16 бит) полученных данных, чтобы указать, насколько велик размер кадра. Основываясь на этих данных, я ожидаю, что что...
950 просмотров
schedule
21.04.2024
Существует ли стандартный класс С++ для установки переменной в значение при выходе из области видимости
В рамках функции-члена я хочу временно установить для переменной-члена определенное значение.
Затем, когда эта функция возвращается, я хочу сбросить эту переменную-член до заданного известного значения.
Чтобы защититься от исключений и...
3449 просмотров
schedule
29.10.2022
Почему деструкторы запускаются при возникновении паники?
Если программа на Rust паникует и предполагая, что нет никаких ловушек паники (которых некоторое время не было), конечно, было бы безопасно и нормально не запускать деструкторы, а просто позволить ОС очиститься после процесса. Почему Rust...
196 просмотров
schedule
11.08.2022
Как создать функцию с надежной гарантией исключения?
У меня есть функция, для которой я хотел бы иметь сильную гарантию исключения:
class X {
/* Fields and stuff */
void some_function() {
vector1.push_back(/*...*/); // May Throw
vector2.push_back(/*...*/); // May Throw...
114 просмотров
schedule
16.12.2022