プログラム終了用の例外作って代わりにすればよくね?
main関数でcatchすること前提にすればギリギリ有りな気が。

struct exit_class{};
void exit_cpp(){
throw exit_class();
}