|
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