build in C++17 mode by default

* configure.ac: Activate C++17, and replace --enable-c++17 by
--enable-c++20.
* NEWS: Mention the news.
* .gitlab-ci.yml: Use C++20 for the former C++17 builds.
* HACKING, README, doc/org/compile.org, doc/org/concepts.org,
doc/org/index.org, doc/org/install.org, doc/org/tut.org,
doc/org/upgrade2.org, spot/misc/escape.hh: Adjust mentions
of C++14.
This commit is contained in:
Alexandre Duret-Lutz 2020-07-16 12:12:21 +02:00
parent a770727ee8
commit 4f23097619
12 changed files with 79 additions and 62 deletions

26
HACKING
View file

@ -24,7 +24,7 @@ since the generated files they produce are distributed.)
GNU Autoconf >= 2.61
GNU Automake >= 1.11
GNU Libtool >= 2.4
GNU Flex (the version seems to matters, we used 2.5.35)
GNU Flex >= 2.5.35
GNU Bison >= 3.0
GNU Emacs (preferably >= 24 but it may work with older versions)
org-mode >= 9.1 (the version that comes bundled with your emacs
@ -32,9 +32,9 @@ since the generated files they produce are distributed.)
a separate and more recent org-mode package, or you can
simply upgrade from ELPA).
Groff (a.k.a. GNU troff) >= 1.20
SWIG >= 3.0.2 (for its better C++11/C++14 support)
Note that if you use Macports you should consider to install the
swig-python package in addition to the swig package.
SWIG >= 3.0.2, preferably >= 4.0.1 (for its better modern C++ support)
If you use Macports you consider installing the swig-python package
in addition to the swig package.
Doxygen >= 1.4.0
R used by some examples in the documentation
Perl, with its Gettext module (it might be called something like
@ -311,14 +311,22 @@ forget guards, and we do not forget to rename them when a file is
copied into another one.
C++14
C++17
-----
Spot uses some C++14 features, and therefore requires a C++14
compiler. g++ 5.x or clang++ 3.4 should be enough.
Spot uses some C++17 features, and therefore requires a C++17
compiler. g++ 7.x or clang++ 5 should be enough.
Note that the current stable release, 2.9.x, is still using C++14,
so avoid rewriting the code base into C++17 just because it's nicer,
as it will make harder to backport bug fixes. Feel free to
introduce C++17 feature in new code, or in algorithms that are
largely rewritten.
We currently avoid C++20 features until C++20 compiler are widely
available. (FYI: we switched to C++11 in 2015, to C++14 in 2017,
and to C++17 in 2020.)
We currently avoid C++17 features until C++17 compiler are widely
available.
Encoding
--------