Boost logo

Boost :

Subject: Re: [boost] BOOST_NOEXCEPT macro?
From: Nevin Liber (nevin_at_[hidden])
Date: 2011-02-17 14:55:26


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.

-- 
 Nevin ":-)" Liber  <mailto:nevin_at_[hidden]>  (847) 691-1404

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk