stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Farid Zaripov" <>
Subject RE: svn commit: r565959 - /incubator/stdcxx/trunk/etc/config/src/EXTERN_C_EXCEPTIONS.cpp
Date Tue, 21 Aug 2007 19:10:26 GMT
> -----Original Message-----
> From: Martin Sebor [] 
> Sent: Tuesday, August 21, 2007 9:26 PM
> To:
> Subject: Re: svn commit: r565959 - 
> /incubator/stdcxx/trunk/etc/config/src/EXTERN_C_EXCEPTIONS.cpp
> >   There's no #pragma for that, but we can compile all cpp 
> files with 
> > /Ehsc, and some set of specified files with /EHs.
> Okay, that's something to consider. We'll have to see how 
> pervasive the use of __rw_once() will be as soon as I'm done 
> switching to it (so far I think it'll be needed in only a 
> handful of places) and whether any of the initialization 
> functions will potentially throw.

  I've just tried to declare and define __rw_once with throw(...)
specification and compiler doesn't issues warning in that case.

> Btw., from the MSVC Exception Handling Model:
> it looks like by default the compiler generates code that 
> makes catch blocks catch structured exceptions (in addition 
> the C++ kind). That's generally considered bad practice, but 
> it may be relied on by user code for historical reasons. We 
> need to be careful not to impose requirements on our users 
> that would go against this historical practice (doing so 
> could break working code).

  It was by default only in MSVC versions prior 7.0 (because
the only asynhronous exceptions handling model was implemented.
Since MSVC 7.0 they added synhronous exceptions handling
model and this model is used by default.


View raw message