Рассмотрим следующий код:
struct T {
void f() noexcept { /* an arbitrary long piece of code */ }
};
void some_function() {
T t{};
try { t.f(); }
catch(...) {
std::cout << "Something is Wrong!!"; // An unreachable line of code
}
}
Есть ли какой-либо уровень оптимизации в Clang и G CC, который удаляет весь try/catch
и просто вызывает t.f()
вместо этого? Есть ли какой-нибудь специальный переключатель c для включения / отключения этой оптимизации?