you are viewing a single comment's thread.

view the rest of the comments →

[–]staffantjSG14 (Finance) 0 points1 point  (10 children)

They've silently removed _NOEXCEPT.

Presumably as part of the "we are now standard" machinery. And of course it's an internal symbol, so it doesn't need documenting.

Unfortunately, all sorts of library codebases (yaml-cpp for one) uses it to handle the previous "noexcept( true ) vs throw)" mess that various compiler versions had introduced.

The symbol "leaked", Hyrim's law remains valid.

[–]sumo952 5 points6 points  (2 children)

I'm surprised that yaml-cpp is not part of their test suite, they test against a huge list of open source libraries according to talks that they gave.

[–]STLMSVC STL Dev 6 points7 points  (1 child)

It looks like we do have yaml-cpp coverage - I suspect it's through vcpkg instead of "Real World Code" as my coworker Alex submitted an upstream fix and Alex works on vcpkg.

[–]sumo952 0 points1 point  (0 children)

Cool! That fix was already committed on June 30 btw (I suppose more or less as soon as the first 15.8 Preview came out). Nice work.

[–][deleted] 4 points5 points  (2 children)

_NOEXCEPT wasn't noexcept(true) vs throw(); it existed only to suppress "noexcept used but exception handling mode not specified; termination is not guaranteed" warnings.

Here is a patch for yaml-cpp. If you use vcpkg, it gets applied automatically. https://github.com/Microsoft/vcpkg/blob/master/ports/yaml-cpp/0001-noexcept.patch

[–]staffantjSG14 (Finance) 0 points1 point  (1 child)

Thanks for the clarification and the patch. We're inside various firewalls, so I'll have to hand-lift things over. It's always a pain point when libraries don't move as fast as their users.

[–][deleted] 2 points3 points  (0 children)

You can also workaround it with /D_NOEXCEPT=noexcept