diff --git a/CMakeLists.txt b/CMakeLists.txt index 196d3ce71..51c6c93ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.8) set(BOOST_MIN_VERSION "1.66.0") -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/doc/21-development.md b/doc/21-development.md index c25ae839a..66ce290fe 100644 --- a/doc/21-development.md +++ b/doc/21-development.md @@ -697,7 +697,7 @@ Read more about it in the [Technical Concepts](19-technical-concepts.md#technica #### Get to know the code -First off, you really need to know C++ and portions of C++14 and the boost libraries. +First off, you really need to know C++ and portions of C++17 and the boost libraries. Best is to start with a book or online tutorial to get into the basics. Icinga developers gained their knowledge through studies, training and self-teaching code by trying it out and asking senior developers for guidance. @@ -1138,7 +1138,7 @@ for formatting, splitting strings, joining arrays into strings, etc. Use the existing libraries and header-only includes for this specific version. -Note: Prefer C++14 features where possible, e.g. std::atomic and lambda functions. +Note: Prefer C++17 features where possible, e.g. std::atomic and lambda functions. General: @@ -1185,7 +1185,7 @@ If you consider an external library or code to be included with Icinga, the foll requirements must be fulfilled: - License is compatible with GPLv2+. Boost license, MIT works, Apache is not. -- C++14 is supported +- C++17 is supported - Header only implementations are preferred, external libraries require packages on every distribution. - No additional frameworks, Boost is the only allowed. - The code is proven to be robust and the GitHub repository is alive, or has 1k+ stars. Good libraries also provide a user list, if e.g. Ceph is using it, this is a good candidate. @@ -2172,7 +2172,7 @@ Icinga application using a dist tarball (including notes for distributions): * cmake >= 2.6 * GNU make (make) or ninja-build -* C++ compiler which supports C++14 +* C++ compiler which supports C++17 * RHEL/Fedora/SUSE: gcc-c++ >= 7 (extra Developer Tools on RHEL7 see below) * Debian/Ubuntu: build-essential * Alpine: build-base @@ -2445,7 +2445,7 @@ The following packages are required to build the SELinux policy module: ##### RHEL/CentOS 7 The RedHat Developer Toolset is required for building Icinga 2 beforehand. -This contains a C++ compiler which supports C++14 features. +This contains a C++ compiler which supports C++17 features. ```bash yum install centos-release-scl