On Tue, Dec 27, 2011 at 09:36:10AM -0600, Nate Bargmann wrote:
> As a bit of background, the tutorial is written some years ago and I
> have found the C++ standard has tightened a few things which has
> enhanced my learning!  Also, the author uses MS VC++ even though the
> book is aimed at the C++ standard of the time.  It's likely that the
> code was not tested on Unix/Linux although sometimes he will note some
> differences between the platforms which indicates some feedback if not
> personal experience.  Fortunately, the tutorial is not MS VC++ centric
> as near as I can tell.  It's likely, then, that the try{} block in the
> program was able to intercept the exception on MS Windows at that time.

It's definitely a MS-Windows-specific feature; it's known as
"win32 structured exception handling (SEH)", and it translates hardware
exceptions (such as divide by zero) into software exceptions (i.e.
C++ exceptions).  This requires special compiler support to generate
the extra code, which presumably has some effect upon performance.  I
guess it would be possible to write a signal handler to cause a throw
on return to simulate the MS VC++ behaviour, but it would be quite
hairy I think.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms680657(v=vs.85).aspx
http://stackoverflow.com/questions/1497068/c-gcc-how-does-gccs-c-implementation-handle-division-by-zero

Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.


-- 
To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org 
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20111227162843.gb5...@codelibre.net

Reply via email to