deal.II currently only requires a C++11-conforming compiler, but there are a number of functions and classes from the C++17 standard that are easy to provide also in case the compiler only supports C++11. These are collected in the current namespace.
The most notable example is the std::optional
class that was introduced to C++ starting with the C++17 standard.
There are other small additions in this namespace that allow us to use C++17 features at this point already, even though we don't require a C++17-compliant compiler.
- Note
- If the compiler in use actually does support C++17, then the contents of this namespace are simply imported classes and functions from namespace
std
. That is, we fall back to what the compiler provides, rather than our own implementations.