Из C ++ 11 n3290 - § 18.5:
[[noreturn]] void _Exit(int status) noexcept;
Программа завершается без выполнения деструкторов для объектов с длительностью автоматического, потокового или статического хранения и без вызова функций, переданных atexit()
Это на самом деле определено в C99, хотя на практике работает с большим количеством реализаций до C ++ 11.
Использование:
#include <cstdlib>
#include <iostream>
struct test {
~test() {
std::cout << "Goodbye world" << std::endl;
}
};
int main() {
test t;
_Exit(0);
}