Require C++17 standard and STL features.
authorM. Eric Irrgang <ericirrgang@gmail.com>
Wed, 29 Apr 2020 08:21:14 +0000 (11:21 +0300)
committerM. Eric Irrgang <ericirrgang@gmail.com>
Thu, 30 Apr 2020 07:31:11 +0000 (10:31 +0300)
commit175d3bb67f4a1c0940cb9e18ff370549baa7996c
tree3fc4003b2de51b9da41ba6994f771d424f8863f1
parentdf9eb54631e59482b025b2977f1b0c43b7dfc4fb
Require C++17 standard and STL features.

Closes #3297

* Update project CMAKE_CXX_STANDARD.
* Migrate to std::optional and std::string_view.
* Update requirements in client packages.
* Provide some tool chain hints.
* Replace deprecated use of std::uncaught_exception() with
  std::uncaught_exceptions().
* Update install-guide.
37 files changed:
CMakeLists.txt
cmake/FindLibStdCpp.cmake
docs/dev-manual/language-features.rst
docs/install-guide/index.rst
docs/release-notes/2021/major/portability.rst
python_packaging/sample_restraint/CMakeLists.txt
python_packaging/src/CMakeLists.txt
src/api/cpp/context_impl.h
src/api/cpp/createsession.h
src/api/cpp/include/gmxapi/compat/mdparams.h
src/api/cpp/mdsignals.h
src/api/cpp/session_impl.h
src/api/cpp/sessionresources.h
src/api/cpp/tests/stopsignaler.cpp
src/api/cpp/tests/testingconfiguration.h
src/api/cpp/workflow.h
src/api/cpp/workflow/tests/workflow.cpp
src/api/cpp/workflow_impl.h
src/external/nonstd/README [deleted file]
src/external/nonstd/optional.hpp [deleted file]
src/gromacs/applied_forces/densityfittingforceprovider.cpp
src/gromacs/commandline/filenm.cpp
src/gromacs/commandline/filenm.h
src/gromacs/compat/optional.h [deleted file]
src/gromacs/compat/string_view.h [deleted file]
src/gromacs/compat/tests/.gitattributes
src/gromacs/compat/tests/CMakeLists.txt
src/gromacs/compat/tests/optional.cpp [deleted file]
src/gromacs/compat/tests/string_view.cpp [deleted file]
src/gromacs/gmxpreprocess/pdb2gmx.cpp
src/gromacs/mdrunutility/handlerestart.cpp
src/gromacs/nbnxm/benchmark/bench_setup.cpp
src/gromacs/topology/residuetypes.cpp
src/gromacs/topology/residuetypes.h
src/gromacs/utility/keyvaluetreetransform.cpp
src/gromacs/utility/path.cpp
src/gromacs/utility/path.h