This page will attempt to describe features of modern C++ standards (C++17, etc.) supported by the game. For information on building the game, see BuildInstructions.
- GCC 7 or newer
- Clang 6 or newer
- Shipped with Xcode 9.3 on OS X, which is 10.13+ (which also has 10.1)
- Visual Studio 2017
In general, all features up to and including C++17 are usable, except for:
- C++17 Filesystem / Variant / Optional (not supported on Mac Clang before Xcode 11).
Known exceptions are the above features reported by Microsoft:
|P1771R1||nodiscard for constructors|
|P0961R1||Relaxing the structured bindings customization point finding rules|
|P0969R0||Allowing structured bindings to accessible members|
|P0588R1||Simplifying implicit lambda capture|
|P1825R0||Merged wording for P0527R1 and P1155R3, more implicit moves|
|P0929R2||Checking for abstract class types|
|P0962R2||Relaxing the range-for loop customization point finding rules|
|P0859R0||CWG 1581: When are constexpr member functions defined|
|P1009R2||Array size deduction in new-expressions|
|P1286R2||Contra CWG DR1778|
There are nice features and should not be a concern in general. Note though that
[[nodiscard]] cannot be used on constructors.