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