[Development] New BiC gotcha: adding noexcept

Allan Sandfeld Jensen kde at carewolf.com
Sat Dec 2 09:25:27 CET 2017


On Freitag, 1. Dezember 2017 15:41:18 CET Marc Mutz wrote:
> On 2017-12-01 15:21, Marc Mutz wrote:
> > Hi,
> > 
> > I just realised: Since C++17, noexcept is part of the mangled name.
> > That means that adding noexcept to an exported function is BiC now!
> 
> This is not correct, after all. The name mangling of functions does not
> change, since you can't overload on noexcept(true)/noexcept(false). It's
> the name of function pointer _types_ that change. That's not to say that
> there are no BiC issues lurking there (or, more probable, more SiC
> issues than what was fixed so far), but the above was false alarm. Pfew.
> 
I had the same panic twice already. I even wrote a test to demonstate the 
issue, which then failed to do so ;) C++17 did cause several source 
incompatibilities though. Both for this issue and removal of explicit throw 
declarations (the latter fortunately not used by Qt).

'Allan



More information about the Development mailing list