On Tue, 4 Apr 2017 23:09:33 +0100
Jonathan Wakely <gt...@kayari.org> wrote:
> On 4 April 2017 at 22:56, Chris Vine wrote:
> > I would check that.  It didn't affect ABI in C++11/14, but I am not
> > so sure about C++17.  According to
> > http://en.cppreference.com/w/cpp/language/noexcept_spec,
> > in C++17 "The noexcept-specification is a part of the function type
> > and may appear as part of any function declarator."  If it is part
> > of the type then it might feature in name mangling, so this is
> > worth checking with the compiler writers.  
> 
> In C++17 the exception spec is part of the type, so noexcept(true)
> functions are mangled differently from functions that are
> noexcept(false).

As I said in my follow-up email, on reflection I agree with you about
noexcept(false).

But if this is correct about noexcept(true), and I am now beginning to
doubt myself on this, then it seems a recipe for broken libraries.  It
makes any code with a noexcept(true) function specification which has
been compiled with the -std=c++14 option ABI incompatible with the same
code compiled with the -std=c++17 option.

What benefit accrues from making the noexcept specification part of
the type which is worth all that ABI breakage?
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to