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
  virtual const char* name() const = 0;

class derived : public base
  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
> 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.


Boost list run by bdawes at, gregod at, cpdaniel at, john at