Bill Davidson said:
I am looking for a list of popular compilers and/or platforms that
*do not* support native C++ exceptions. Any pointers in this
regard is appreciated.
It seems a strange question - what for?
The C++ language is now defined by an ISO standard. The language specified in
that standard /does/ support exceptions, and the runtime library described in the
standard /does/ use exceptions. Any compiler that doesn't support them isn't C++
(not standard C++, anyway).
Maybe that's the answer you're looking for? Non-C++ compilers don't support
native C++ exceptions. Fortran compilers, for example.
If, on the other hand, your question is really "how widespread are C++-subset
compilers that don't support exceptions" or "if I use exceptions in my code will
my code be significantly less portable than if I don't use them" then the answer
is that all modern compilers on desktop platforms do support exceptions, as do
the better embedded ones. I would expect this situation to improve as compilers
continue to be updated to include more of the provisions of the standard.
- I believe that the Microsoft compilers targetting Windows CE currently
don't support exceptions (is that still true? It seems a strange
omission),
- Visual C++ for 16-bit platforms didn't support excpetions (but had
an exception-like system without stack unwinding kludged with longjump).
- C++ on the Symbian platform does not use exceptions (because it depends
upon an old version of the gcc cross-compiler which is deficient in
exception support) and so has its own error-handling mechanism. Porting code
to/from Symbian is a fairly major undertaking because Symbian provides a large
runtime library that is peculiar to the Symbian platform, support for
exceptions will be the least of your worries.
All the C++ compilers I'm aware of for Windows and/or linux do support
exceptions.
Unless you have a particular compiler or platform in mind that you know does not
support exceptions I would go ahead and use them. In my experience the use of
exceptions leads to clearer code and more robust error handling than the
alternatives.
Daniel James | djng
Sonadata Limited, UK | at sonadata
| dot co dot uk