|
Boost : |
Subject: Re: [boost] BOOST_NOEXCEPT macro?
From: Dave Abrahams (dave_at_[hidden])
Date: 2011-02-17 15:51:55
On Thu, Feb 17, 2011 at 2:55 PM, Nevin Liber <nevin_at_[hidden]> wrote:
> On 17 February 2011 11:45, Dave Abrahams <dave_at_[hidden]> wrote:
>
>> On Thu, Feb 17, 2011 at 11:36 AM, Alexander Fokin <apfokin_at_[hidden]>
>> wrote:
>> > I believe it's not that simple.
>> >
>> > As I remember, throw() means the same thing as nothrow only in MSVC.
>> > For example, under GCC you'll have to use __attribute__((nothrow)).
>> >
>> > Correct me if I'm wrong.
>>
>> You're right. In general, throw() has runtime semantics and can
>> produce runtime overhead in the form of increased executable size and
>> occasionally reduced speed. noexcept has only compile-time semantics.
>>
>
> noexcept has runtime semantics as well, doesn't it? If you are in a
> function declared noexcept(true) and an exception tries to escape,
> std::terminate is called.
Grrr! Right, I forgot they added that behavior against my advice.
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk