KF5 modules development branches now build in C++17 mode (but keep public headers compatible)

Albert Astals Cid aacid at kde.org
Sun Jun 20 11:36:02 BST 2021


El diumenge, 20 de juny de 2021, a les 12:16:33 (CEST), Friedrich W. H. Kossebau va escriure:
> Hi,
> 
> small heads-up for everyone: as of yesterday, KDEFrameworksCompilerSettings 
> from current ECM development branch now sets
>     set(CMAKE_CXX_STANDARD 17)
>     set(CMAKE_CXX_STANDARD_REQUIRED TRUE)

Semi-related question, does anyone know why we're not using
  set(CMAKE_CXX_EXTENSIONS OFF)
?

Cheers,
  Albert

> for all KF modules (triggered by required ECM 5.84.0 version, which was also 
> bumped yesterday in all KF module development branches already to activate the 
> setting).
> Any custom CMAKE_CXX_STANDARD settings as before present in some KF modules 
> have been removed as well, so all KF modules code should build now complying 
> to the C++17 standards, so everyone can also take advantage of those in new 
> code for KF modules from now on.
> 
> 
> BEWARE (just to emphasize the obvious to you, so it can be referenced ;) ):
> 
> As KF5 promises ABI & source backwards-compatibility for the KF5 series to its 
> consumers, public KF headers need to stay compatible with projects using C++11 
> (or C++14).
> So in public headers C++17 features can only be used for new API and also 
> needs to be guarded properly by respective preprocessor macros to not be seen 
> in C++<17 usages of KF headers.
> 
> Cheers
> Friedrich
> 
> 
> 






More information about the Kde-frameworks-devel mailing list