Difference between revisions of "C++17 support in compilers"
From KlayGE
Gongminmin (Talk | contribs) |
Gongminmin (Talk | contribs) |
||
Line 4: | Line 4: | ||
! Language Feature !! Proposal !! MSVC !! GCC !! ICC !! Clang !! Alternative | ! Language Feature !! Proposal !! MSVC !! GCC !! ICC !! Clang !! Alternative | ||
|- | |- | ||
− | | static_assert with no message || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3928.pdf N3928] || {{No}}No || {{ | + | | static_assert with no message || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3928.pdf N3928] || {{No}}No || {{Yes}}6.0 || {{No}}No || {{Yes}}3.5 || C++11's static_assert |
|- | |- | ||
− | | Disabling trigraph expansion by default || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html N4086] || {{Yes}}12.0 || {{ | + | | Disabling trigraph expansion by default || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4086.html N4086] || {{Yes}}12.0 || {{Yes}}5.1 || {{No}}No || {{Yes}}3.5 || |
|- | |- | ||
| typename in a template template parameter || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html N4051] || {{Yes}}14.0 || {{No}}No || {{No}}No || {{Yes}}3.5 || | | typename in a template template parameter || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4051.html N4051] || {{Yes}}14.0 || {{No}}No || {{No}}No || {{Yes}}3.5 || | ||
|- | |- | ||
− | | New auto rules for direct-list-initialization || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html N3922] || {{Yes}}14.0 || {{No}}No || {{No}}No || {{ | + | | New auto rules for direct-list-initialization || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3922.html N3922] || {{Yes}}14.0 || {{No}}No || {{No}}No || {{Yes}}3.8 || |
|- | |- | ||
− | | Fold expressions || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html N4295] || {{No}}No || {{ | + | | Fold expressions || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4295.html N4295] || {{No}}No || {{Yes}}6.0 || {{No}}No || {{Yes}}3.6 || |
|- | |- | ||
| Attributes for namespaces and enumerators || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html N4266] || {{Yes}}14.0 || {{No}}No || {{No}}No || {{Yes}}3.6 || | | Attributes for namespaces and enumerators || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4266.html N4266] || {{Yes}}14.0 || {{No}}No || {{No}}No || {{Yes}}3.6 || | ||
|- | |- | ||
− | | u8 character literals || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html N4267] || {{Yes}}14.0 || {{ | + | | u8 character literals || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html N4267] || {{Yes}}14.0 || {{Yes}}6.0 || {{No}}No || {{Yes}}3.6 || |
|- | |- | ||
− | | Nested namespace definition || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html N4230] || {{No}}No || {{ | + | | Nested namespace definition || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4230.html N4230] || {{No}}No || {{Yes}}6.0 || {{No}}No || {{Yes}}3.6 || |
|- | |- | ||
− | | Allow constant evaluation for all non-type template arguments || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html N4268] || {{No}}No || {{ | + | | Allow constant evaluation for all non-type template arguments || [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4268.html N4268] || {{No}}No || {{Yes}}6.0 || {{No}}No || {{Yes}}3.6 || |
|} | |} | ||
Revision as of 02:20, 24 June 2016
C++17 Core Language Features
Language Feature | Proposal | MSVC | GCC | ICC | Clang | Alternative |
---|---|---|---|---|---|---|
static_assert with no message | N3928 | No | 6.0 | No | 3.5 | C++11's static_assert |
Disabling trigraph expansion by default | N4086 | 12.0 | 5.1 | No | 3.5 | |
typename in a template template parameter | N4051 | 14.0 | No | No | 3.5 | |
New auto rules for direct-list-initialization | N3922 | 14.0 | No | No | 3.8 | |
Fold expressions | N4295 | No | 6.0 | No | 3.6 | |
Attributes for namespaces and enumerators | N4266 | 14.0 | No | No | 3.6 | |
u8 character literals | N4267 | 14.0 | 6.0 | No | 3.6 | |
Nested namespace definition | N4230 | No | 6.0 | No | 3.6 | |
Allow constant evaluation for all non-type template arguments | N4268 | No | 6.0 | No | 3.6 |