
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