Код: Выделить всё
#include
#include
#include
#include
#include
void f() {
for (auto x : std::initializer_list({std::nullopt})) {
if (x.has_value()) throw std::runtime_error("Wrong");
std::stacktrace::current();
}
}
int main() {
std::println("Start");
auto b = new bool(true);
try {
f();
} catch (...) {
std::println("Exception");
}
delete b;
std::println("Stop");
}
Дополнительная информация:
- Это происходит только при создании сборки «Релиз», а не для сборок «Отладка».
- Это происходит независимо от подключенного отладчика.
- Это происходит только при выделении кучи (, make_unique, ...), но не при выделении стека в одном и том же месте.
Код: Выделить всё
new bool - Мне не удалось еще больше сократить код. В частности, это должен быть цикл, он должен использовать std::initializer_list, он должен вызывать std::stacktrace::current() и т. д.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ingle-byte