Difference between revisions of "Compiling ScummVM/C++11 Readiness"
Jump to navigation
Jump to search
(→Results: Remove Init List1 test for AmigaOS (I very much doubt it was tested)) |
(Use references for all the notes) |
||
Line 8: | Line 8: | ||
!Platform!!Class Enum!!Final Class!!Final Function!!Variadic!!Type Aliases!!Init Lists1!!Init Lists 2!!Ranged loops!!Lambdas!!Space in nested templates!!Alt functions syntax!!Static Init!!Explicit Conversion!!Move Semantics!!Deleted Functions | !Platform!!Class Enum!!Final Class!!Final Function!!Variadic!!Type Aliases!!Init Lists1!!Init Lists 2!!Ranged loops!!Lambdas!!Space in nested templates!!Alt functions syntax!!Static Init!!Explicit Conversion!!Move Semantics!!Deleted Functions | ||
|- | |- | ||
|AmigaOS gcc 8.3.0 | |AmigaOS gcc 8.3.0 <ref>--enable-c++11 breaks compilation in base/commandLine.cpp</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}} | ||
|- | |- | ||
|iOS3 clang 3.7.1 | |iOS3 clang 3.7.1||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| {{yes}}<ref>It only works with the std::initializer_list replacement.</ref> ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}} | ||
|- | |- | ||
|macOS gcc 4.0.1 (PPC)||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}|| {{no}} ||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}} | |macOS gcc 4.0.1 (PPC)||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}|| {{no}} ||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}}||{{no}} | ||
Line 24: | Line 24: | ||
|Mingw-w64 clang 10.0.0 (x86_64)||{{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}} | ||
|- | |- | ||
|PSP gcc 4.9.3 (mips) | |PSP gcc 4.9.3 (mips) <ref>--enable-c++11 breaks compilation in backends/platform/psp/default_display_client.cpp with error 'bzero' was not declared in this scope. C++11 support is not enabled by default. Compiler fails in default_display_client.cpp before reaching the c++11 test file.</ref>||?||?||?||?||?||?||?||?||?||?||?||?||?||?||? | ||
|- | |- | ||
|Switch gcc 10.1.0 (arm_64) | |Switch gcc 10.1.0 (arm_64) <ref>10.1.0 was tested locally using latest toolchain. Buildbot still uses 8.6.0-based toolchain, which was not tested.</ref><ref>--enable-c++11 breaks compilation in backends/midi/timidity.cpp with multiple errors: 'u_char' was not declared in this scope, 'seqbuf' was not declared in this scope, 'usleep' was not declared in this scope. C++11 support is enabled by default, though, so the flag is not needed.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}} | ||
|- | |- | ||
|Vita (psp2) gcc 9.1.0 (arm_32) | |Vita (psp2) gcc 9.1.0 (arm_32) <ref>--enable-c++11 breaks compilation in backends/fs/posix/posix-iostream.cpp with error 'fileno' was not declared in this scope. C++11 support is enabled by default, though, so the flag is not needed.</ref>||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}} | ||
|- | |- | ||
|Visual Studio 2019||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}} | |Visual Studio 2019||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}|| - ||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}}||{{yes}} | ||
Line 35: | Line 35: | ||
==Notes== | ==Notes== | ||
<references /> | <references /> | ||
Revision as of 19:05, 29 May 2020
How to test
Run ./configure --enable-c++11 --enable-test-c++11
.
Results
Platform | Class Enum | Final Class | Final Function | Variadic | Type Aliases | Init Lists1 | Init Lists 2 | Ranged loops | Lambdas | Space in nested templates | Alt functions syntax | Static Init | Explicit Conversion | Move Semantics | Deleted Functions |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AmigaOS gcc 8.3.0 [1] | 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[2] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
macOS gcc 4.0.1 (PPC) | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
macOS clang 6.0 (i386) | Yes | Yes | Yes | Yes | Yes | Yes[3] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
macOS clang 9.0 (x86_64) | 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 |
Mingw-w64 gcc 10.1.0 (x86_64) | 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 |
PSP gcc 4.9.3 (mips) [4] | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Switch gcc 10.1.0 (arm_64) [5][6] | Yes | Yes | Yes | Yes | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Vita (psp2) gcc 9.1.0 (arm_32) [7] | Yes | Yes | Yes | Yes | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Visual Studio 2019 | Yes | Yes | Yes | Yes | Yes | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Notes
- ↑ --enable-c++11 breaks compilation in base/commandLine.cpp
- ↑ It only works with the std::initializer_list replacement.
- ↑ It only works with the std::initializer_list replacement.
- ↑ --enable-c++11 breaks compilation in backends/platform/psp/default_display_client.cpp with error 'bzero' was not declared in this scope. C++11 support is not enabled by default. Compiler fails in default_display_client.cpp before reaching the c++11 test file.
- ↑ 10.1.0 was tested locally using latest toolchain. Buildbot still uses 8.6.0-based toolchain, which was not tested.
- ↑ --enable-c++11 breaks compilation in backends/midi/timidity.cpp with multiple errors: 'u_char' was not declared in this scope, 'seqbuf' was not declared in this scope, 'usleep' was not declared in this scope. C++11 support is enabled by default, though, so the flag is not needed.
- ↑ --enable-c++11 breaks compilation in backends/fs/posix/posix-iostream.cpp with error 'fileno' was not declared in this scope. C++11 support is enabled by default, though, so the flag is not needed.