Changes between Version 3 and Version 4 of CppSupport
- Timestamp:
- Jan 9, 2017, 11:30:24 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CppSupport
v3 v4 5 5 6 6 0 A.D. is a cross platform game written primarily in C++ and JavaScript, and as such it has to support multiple compilers with different implemented features. Here are the currently supported compilers for the game: 7 * GCC 4. 6or newer7 * GCC 4.7 or newer 8 8 * Clang 3.1 or newer 9 9 * Shipped with Xcode 4.3.3 on OS X … … 17 17 = C++11 Core Language Features = 18 18 19 ||= Feature =||= Example =||= GCC 4. 6=||= Clang 3.1 =||= VS 2013 =||= '''0 A.D. Support''' =||= Notes =||19 ||= Feature =||= Example =||= GCC 4.7 =||= Clang 3.1 =||= VS 2013 =||= '''0 A.D. Support''' =||= Notes =|| 20 20 {{{#!tr style="background: LightYellow" 21 21 ||Emplacement||`emplace`, `emplace_back`|| P || Y || Y || P || GCC < 4.8 is missing emplacement on [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44436 associative containers] || … … 30 30 ||Initialization of class objects by rvalues|| || Y || Y || Y || Y || || 31 31 }}} 32 {{{#!tr style="background: Pink"33 ||Non-static data member initializers||`class Foo{ public: int bar=7; };`|| N || Y || Y || N|| ||32 {{{#!tr style="background: LightGreen" 33 ||Non-static data member initializers||`class Foo{ public: int bar=7; };`|| Y || Y || Y || Y || || 34 34 }}} 35 35 {{{#!tr style="background: LightGreen" … … 75 75 ||Solving the SFINAE problem for expressions|| || Y || Y || N || N || || 76 76 }}} 77 {{{#!tr style="background: Pink"78 ||Template aliases||`template<class T> using Vec = vector<T,My_alloc<T>>;`|| N || Y || Y || N|| ||77 {{{#!tr style="background: LightGreen" 78 ||Template aliases||`template<class T> using Vec = vector<T,My_alloc<T>>;`|| Y || Y || Y || Y || || 79 79 }}} 80 80 {{{#!tr style="background: LightGreen" … … 99 99 ||Alignment support||`alignas(16) char[100];`|| N || N || P || N || || 100 100 }}} 101 {{{#!tr style="background: Pink"102 ||Delegating constructors|| || N || Y || Y || N|| ||101 {{{#!tr style="background: LightGreen" 102 ||Delegating constructors|| || Y || Y || Y || Y || || 103 103 }}} 104 104 {{{#!tr style="background: Pink" … … 121 121 }}} 122 122 {{{#!tr style="background: Pink" 123 ||Extensible literals||`std::string operator""s (const char* p, size_t n)`|| N|| Y || N || N || ||123 ||Extensible literals||`std::string operator""s (const char* p, size_t n)`|| Y || Y || N || N || || 124 124 }}} 125 125 {{{#!tr style="background: LightGreen" … … 129 129 ||Defaulted and deleted functions||`X& operator=(const X&) = delete;`|| Y || Y || Y || Y || || 130 130 }}} 131 {{{#!tr style="background: Pink"132 ||Extended friend declarations|| || N || Y || Y || N|| ||131 {{{#!tr style="background: LightGreen" 132 ||Extended friend declarations|| || Y || Y || Y || Y || || 133 133 }}} 134 134 {{{#!tr style="background: Pink" … … 147 147 ||Range-based for||`for (auto x : vec)`|| Y || Y || Y || Y || || 148 148 }}} 149 {{{#!tr style="background: Pink"150 ||Explicit virtual overrides||`void f() override;`|| N || Y || Y || N|| ||149 {{{#!tr style="background: LightGreen" 150 ||Explicit virtual overrides||`void f() override;`|| Y || Y || Y || Y || || 151 151 }}} 152 152 {{{#!tr style="background: Pink" … … 162 162 == C++11 Core Language Features: Concurrency == 163 163 164 ||= Feature =||= Example =||= GCC 4. 6=||= Clang 3.1 =||= VS 2013 =||= '''0 A.D. Support''' =||= Notes =||164 ||= Feature =||= Example =||= GCC 4.7 =||= Clang 3.1 =||= VS 2013 =||= '''0 A.D. Support''' =||= Notes =|| 165 165 {{{#!tr style="background: Pink" 166 166 ||Sequence points|| || N || N || N || N || || … … 196 196 == C++11 Core Language Features: C99 == 197 197 198 ||= Feature =||= Example =||= GCC 4. 6=||= Clang 3.1 =||= VS 2013 =||= '''0 A.D. Support''' =||= Notes =||198 ||= Feature =||= Example =||= GCC 4.7 =||= Clang 3.1 =||= VS 2013 =||= '''0 A.D. Support''' =||= Notes =|| 199 199 {{{#!tr style="background: Pink" 200 200 ||!__func!__ predefined identifier|| || Y || Y || P || N || || … … 212 212 = References = 213 213 214 1. C++0x/C++11 Support in GCC: https://gcc.gnu.org/projects/cxx0x.html 214 1. C++0x/C++11 Support in GCC: https://gcc.gnu.org/projects/cxx0x.html and https://gcc.gnu.org/projects/cxx-status.html#cxx11 215 215 1. Support For C++11 Features (Modern C++) in Visual C++: https://msdn.microsoft.com/en-us/library/hh567368.aspx 216 216 1. C++ Support in Clang: http://clang.llvm.org/cxx_status.html