This chapter gives you a brief overview about the SWIG implementation of the C++17 standard. There isn't much in C++17 that affects SWIG, however, work has only just begun on adding C++17 support.
Compatibility note: SWIG-4.0.0 is the first version to support any C++17 features.
C++17 offers a more concise syntax for defining namespaces. SWIG has support for nested namespace definitions such as:
namespace A::B::C { ... }
This is the equivalent to the C++98 namespace definitions:
namespace A { namespace B { namespace C { ... } } }
C++17 added UTF-8 (u8) character literals. These are of type char. Example:
char a = u8'a';
C++17 added hexadecimal floating literals. For example:
double f = 0xF.68p2;
C++17 added template fold expressions. SWIG 4.3.0 and later support parsing these with a few restrictions. Unary left fold expressions are not supported currently. Also the same restrictions that apply to other expressions apply here too.