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

View file

@ -17,10 +17,10 @@ experience of updating a couple of projects that are using Spot.
* Overview of the changes
Let's begin by just trying to summarize what has changed between
Spot 1.2.6 and Spot 2.0, just to get an idea of what will need to be
Spot 1.2.6 and Spot 2.x, just to get an idea of what will need to be
updated.
1. [[#cpp14][Spot now compiles using the C++14 standard]]. Compliant compiler
1. [[#cpp17][Spot now compiles using the C++17 standard]]. Compliant compilers
are sufficiently widespread now that this should not be an issue.
2. The layout of the source-tree and the layout of the installed
@ -83,22 +83,20 @@ experience of updating a couple of projects that are using Spot.
numbered. Many algorithms have been rewritten on top of this
=twa_graph= class, and this simplified them a lot.
* Upgrading to C++14
* Upgrading to C++17
:PROPERTIES:
:CUSTOM_ID: cpp14
:CUSTOM_ID: cpp17
:END:
Because Spot now relies on C++14 features, programs that use Spot
Because Spot now relies on C++17 features, programs that use Spot
should at least be compiled using this version (or a later one) of
the language.
Before the =g++= 6.0, the default C++ standard used was C++98, and
enabling C++14 is usually done by passing the option =-std=c++14=.
In =g++= 6.0 the default C++ standard used is C++14, so passing
=-std=c++14= is not necessary.
This is usually done by passing the option =-std=c++17= to =g++= or
=clang++=.
Upgrading from C++98, C++03 or C++11 to C++14 should be relatively
smooth as the language is /mostly/ backward compatible.
Upgrading from C++98, C++03, C++11, or C++14 to C++17 should be
relatively smooth as the language is /mostly/ backward compatible.
* Upgrading =#include= directives
:PROPERTIES: