|
Boost : |
Subject: Re: [boost] [system] Add noexcept to conform with C++11
From: Christopher Kohlhoff (chris_at_[hidden])
Date: 2012-12-10 16:33:19
Hi Vicente,
On Tue, Dec 11, 2012, at 01:27 AM, Vicente Botet wrote:
> I don't know what the C++ standard says, but at least MSVC 10.0,
> gcc-4.7.2
> and gcc-4.8.0 complain when I define a virtual function as noexept when
> the
> original declaration was not noexcept.
This snippet illustrates what I mean:
class base
{
public:
virtual const char* name() const = 0;
};
class derived : public base
{
public:
virtual const char* name() const noexcept;
};
// ...
const char* derived::name() const noexcept
{
return "";
}
This compiles without error on gcc 4.7.2 (debian). Can you please
confirm whether your experimental changes follow this form?
> I would say that after the deprecation period the definition should be
> # define BOOST_SYSTEM_NOEXCEPT BOOST_NOEXCEPT
> as the user should not be able to comeback.
Fair enough. My original proposal followed what got checked in with
#ifndef BOOST_SYSTEM_NOEXCEPT/#endif enclosing the definition. I assumed
this was to allow user customisation. If this #define is not intended to
support user customisation then the #ifndef/#endif should not be used
during the deprecation transition period either.
Cheers,
Chris
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk