Boost logo

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