Мое понимание стека исключений в стеке-это то, что модификации на массив будут «как, если» они никогда не возникали: < /p>
#include
#include
#include
#include
int main() {
std::array foo = {};// zero-initialize
try {
std::fill_n(begin(foo), 10, 1);// assign all ones
throw std::runtime_error("intentional");
}
catch (const std::exception&) {
}
std::cout
Я прав в этом; Обнаружение стека гарантирует переменную «foo» - это все нули после блока улова? Чтобы отменить модификации на «Foo», потребует либо резервную копию в памяти, либо некоторые реальные трюки на выполнение, чтобы восстановить его исходное состояние.
Подробнее здесь: https://stackoverflow.com/questions/796 ... erformance
Степение раскручивания модификаций больших массивов в отношении производительности ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Что произойдет, если исключение оставит деструктор *не* во время раскручивания стека?
Anonymous » » в форуме C++ - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему простой запрос MySQL возвращает дубликаты результатов независимо от модификаций
Anonymous » » в форуме MySql - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-