Compiling ScummVM/C++11 Readiness
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
How to test
Run ./configure --enable-test-c++11
.
This option enables the inclusion of file base/test_new_standards.cpp
where we have tests for the desired important C++11 standard features (thanks to ZvikaZ).
Results
Platform | Class Enum | Final Class | Final Function | Variadic | Type Aliases | Init Lists1 | Init Lists 2 | Auto type | Ranged loops | Lambdas | Variadic Templates | Space in nested templates | Type aliases | Alt functions syntax | Non Static Init | Explicit Conversion | Move Semantics | Deleted Functions | Unicode string literal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3DS gcc 10.1.0 (arm) [1] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
AmigaOS gcc 8.3.0 [2] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Android NDK 21.0.6113669 (clang 9.0.8) all platforms | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Debian Buster gcc 8.3.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Dreamcast gcc 4.6.3 | Yes | No | No | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | - |
Dreamcast gcc 4.9.4 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
DS gcc 10.1.0 (arm) [1] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
iOS3 clang 3.7.1 | Yes | Yes | Yes | Yes | Yes | Yes[3] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
iOS7 clang 9.0 (iOS 8.0) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
macOS gcc 4.0.1 (PPC, 10.4) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | - |
macOS gcc 4.8.5 (MacPorts gcc48 4.8.5_6) (PPC, 10.4) [4] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
macOS gcc 7.5.0 (MacPorts gcc7 7.5.0_2) (PPC, 10.4) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
macOS clang 6.0 (i386, 10.6) | Yes | Yes | Yes | Yes | Yes | Yes[3] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
macOS clang 9.0 (x86_64, 10.7) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
macOS clang 11.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Mingw-w64/MXE (x86_64) release toolchain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Mingw-w64/MXE (i686) release toolchain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Mingw-w64 gcc 10.1.0 (x86_64) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Mingw-w64 clang 10.0.0 (x86_64) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Mingw Classic (i586) gcc 9.2.0 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
PS2 gcc 3.2.3 | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No | - |
PS3 gcc 7.2.0 [1] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
PSP gcc 9.3.0 (mips) [1] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
RISC OS gcc 4.7.4 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Switch gcc 10.1.0 (arm_64) [5] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Vita (psp2) gcc 9.1.0 (arm_32) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Visual Studio 2015 v140 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Visual Studio 2017 v141 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Visual Studio 2019 v142 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Wii/GameCube gcc 8.3.0 (PPC) [1] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Wii/GameCube gcc 10.1.0 (PPC) [1][6] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | - |
Notes
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 tested using latest toolchain and using dockerized-bb. Buildbot still uses an old toolchain, which was not tested.
- ↑ --enable-c++11 breaks compilation in base/commandLine.cpp
- ↑ 3.0 3.1 It only works with the std::initializer_list replacement.
- ↑ This is the current (October 2022) default for OS X PPC, since this version is known to be very stable on that platform. GCC 7.5 is also an option if we need it, but bootstrapping it is a bit less reliable.
- ↑ 10.1.0 was tested locally using latest toolchain. Buildbot still uses 8.6.0-based toolchain, which was not tested.
- ↑ 10.1.0 is currently broken due to __dso_handle being not available. Bug is being processed