Require C++17

This commit is contained in:
Alexander A. Klimov 2022-07-21 10:57:08 +02:00
parent 9e90b17eb4
commit 616ccc45fc
2 changed files with 6 additions and 6 deletions

View File

@ -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)

View File

@ -697,7 +697,7 @@ Read more about it in the [Technical Concepts](19-technical-concepts.md#technica
#### Get to know the code <a id="development-develop-get-to-know-the-code"></a>
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