C++ exception implementation (tangent)

看板DFBSD_kernel作者時間21年前 (2005/02/04 10:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
Greg 'groggy' Lehey wrote: > You'll notice that [C++ exceptions are] implemented with setjmp()/longjmp(). Is this the current state of g++? I thought -- perhaps incorrectly -- that EDG-based compilers used lookup tables based on the PC. This imposes no performance hit in the cases where the exception isn't invoked -- it's popular for this reason. I thought that g++ was heading in this direction, but I haven't been following the changes terribly closely. Win32 compilers modify a global pointer used by the OS for structured exception handling (their equivalent of signal handlers). I find it rather elegant, but no compilers take full advantage of it.
文章代碼(AID): #120jwf00 (DFBSD_kernel)
文章代碼(AID): #120jwf00 (DFBSD_kernel)