Noteworthy changes when porting to C++17

Frederik Schwarzer schwarzer at kde.org
Sun Jul 18 01:34:24 BST 2021


Hi,

since we are increasing the C++ standard requirement from 11 to 17 with 
KF6 and there were a few deprecations/removals in between, I wonder if 
any of those are noteworthy for people developing applications based on 
KDE Frameworks.

What I mean by "noteworthy" is features that are commonly used or at 
least known to be used sometimes in our ecosystem. Things like the 
"register" keyword for example might not be found in high-level 
applications so pointing KDE developers to its removal might get you 
shrugs in return.

What I have seen is that std::mem_fun was used within KIO and has been 
replaced by std::mem_fn. Not sure if that counts as "commonly used", though.

Compiler vendors seem to be handling those removalss differently. The 
libstdc++ devs have not had deprecation warnings for at least some of 
the stuff that was deprecated in C++11, so they will not remove those 
any time soon. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91383#c1

In libc++, the deprecation warnings were shown since C++11 and now with 
C++17 they removed some stuff. On Linux you will have to build with the 
-stdlib=libc++ option for clang to notice. See e.g. 
https://godbolt.org/z/6Y1eE3z4P for playing with it.

But I digress ...

So the question is: did you notice things that have been removed from 
the C++ standard since C++11 that were used in our applications?

Cheers,
Frederik


More information about the Kde-frameworks-devel mailing list