4
C++ 11以降では、std::quick_exit
を呼び出してプロセスを終了することができます。つまり、デストラクタは呼び出されません。中] std::quick_exit
。C++ 98で巻き戻さずにプロセスを終了する方法は?
は、私はプロジェクトを持っている:
- それはグローバルオブジェクトを持ち、グローバルオブジェクトのデストラクタでの致命的なバグがあります。
- グローバルオブジェクトのソースにアクセスできません。
main
の最後の行にあるstd::quick_exit
を呼び出せば、バグは発生しません。- 何らかの理由で、プロジェクトをC++ 98コンパイラでコンパイルする必要があります。すなわち、私は
std::quick_exit
をC++ 98コンパイラに呼び出すことはできません。要するに
:C++ 11のstd::quick_exit
と等価であるC++ 98でどのような機能
?
Windowsでは、ExitProcess(0)
に電話をかけて、クリーンアップをせずに強制的にプロセスを終了できます。
Linuxでの対応は?
'_exit()'を試してください。これは、C++ 11以前の標準では明確に文書化されていませんが、グローバルデストラクタを呼び出すことも回避する必要があります。 – Rene