Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 9867 invoked from network); 21 Aug 2007 19:25:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Aug 2007 19:25:43 -0000 Received: (qmail 59417 invoked by uid 500); 21 Aug 2007 19:25:39 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 59390 invoked by uid 500); 21 Aug 2007 19:25:39 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 59303 invoked by uid 99); 21 Aug 2007 19:25:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 12:25:38 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [208.30.140.160] (HELO moroha.quovadx.com) (208.30.140.160) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Aug 2007 19:25:37 +0000 Received: from qxvcexch01.ad.quovadx.com ([192.168.170.59]) by moroha.quovadx.com (8.13.6/8.13.6) with ESMTP id l7LJPEMs021908 for ; Tue, 21 Aug 2007 19:25:14 GMT Received: from [10.70.3.113] ([10.70.3.113]) by qxvcexch01.ad.quovadx.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 21 Aug 2007 13:24:26 -0600 Message-ID: <46CB3C1C.3020905@roguewave.com> Date: Tue, 21 Aug 2007 13:25:16 -0600 From: Martin Sebor Organization: Rogue Wave Software, Inc. User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4 MIME-Version: 1.0 To: stdcxx-dev@incubator.apache.org Subject: Re: svn commit: r565959 - /incubator/stdcxx/trunk/etc/config/src/EXTERN_C_EXCEPTIONS.cpp References: <20070814224803.62DC81A981D@eris.apache.org> <46C25484.3040604@roguewave.com> <46C60C50.2080301@roguewave.com> <7BDB2168BEAEF14C98F1901FD2DE6438D3EC3A@epmsa009.minsk.epam.com> <46CB2E24.50509@roguewave.com> <7BDB2168BEAEF14C98F1901FD2DE6438D3EC43@epmsa009.minsk.epam.com> In-Reply-To: <7BDB2168BEAEF14C98F1901FD2DE6438D3EC43@epmsa009.minsk.epam.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 21 Aug 2007 19:24:26.0993 (UTC) FILETIME=[E37F1610:01C7E428] X-Virus-Checked: Checked by ClamAV on apache.org Farid Zaripov wrote: >> -----Original Message----- >> From: Martin Sebor [mailto:sebor@roguewave.com] >> Sent: Tuesday, August 21, 2007 9:26 PM >> To: stdcxx-dev@incubator.apache.org >> 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(...) > exception > specification and compiler doesn't issues warning in that case. Good to know! We still need to decide how to handle this in the general case (for compilers that behave like MSVC, if there are any) but we can certainly start using this extension to silence the MSVC warnings. > >> Btw., from the MSVC Exception Handling Model: >> http://msdn2.microsoft.com/en-us/library/1deeycx5(VS.80).aspx >> 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. Thanks for the clarification! I've also discovered it in the docs since I sent my mail. Martin