zoukankan      html  css  js  c++  java
  • 更多编译器对C++11的支持比较

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2162

    上次对各编译器对C++11的支持比较之后,很多观众提议加入Intel C++ Compiler(ICC)和Clang。这次修订还加入了在VC11 Nov 12 CTP中对C++11的提升。上回表中的Yes/No标识也被我改成了写明支持一个feature的最低版本号,feature的顺序也调整了一下。为了方便查询,还加入了Proposal的链接。

    C++11 Core Language Features

    Language Feature Proposal MSVC GCC ICC Clang 替代方案
    Rvalue references N2118 10.0 4.3 12.0 2.9 Boost.Move
    Rvalue references for *this N2439 No No No 2.9  
    Initialization of class objects by rvalues N1610 9.0 4.3 11.1 2.9  
    Non-static data member initializers N2756 No 4.7 No 3.0  
    Variadic templates N2242 Nov 12 4.3 12.1 2.9  
    Extending variadic template template parameters N2555 Nov 12 4.4 No 2.9  
    Initializer lists N2672 Nov 12 4.4 No 3.1  
    Static assertions N1720 10.0 4.3 11.1 2.9 Boost.StaticAssert
    auto-typed variables N1984 10.0 4.4 12.0 2.9 Boost.Typeof
    Multi-declarator auto N1737 10.0 4.4 12.0 2.9 Boost.Typeof
    Removal of auto as a storage-class specifier N2546 10.0 4.4 12.0 2.9 Boost.Typeof
    New function declarator syntax N2541 10.0 4.4 12.0 2.9 Boost.ReturnType
    New wording for C++11 lambdas N2927 10.0 4.5 12.0 3.1 Boost.Lambda
    Declared type of an expression N2343 10.0 4.3 12.0 2.9 Boost.Typeof
    Incomplete return types N3276 11.0 No 12.1 3.1  
    Right angle brackets N1757 9.0 4.3 11.1 2.9 TR1
    Default template arguments for function templates DR226 Nov 12 4.3 12.1 2.9  
    Solving the SFINAE problem for expressions DR339 No 4.4 12.1 2.9  
    Template aliases N2258 No 4.7 12.1 3.0  
    Extern templates N1987 9.0 4.3 11.1 2.9  
    Null pointer constant N2431 10.0 4.6 12.1 3.0 自己实现的null_ptr
    Strongly-typed enums N2347 11.0 4.4 No 2.9 #define
    Forward declarations for enums N2764 11.0 4.6 No 3.1  
    Generalized attributes N2761 No 4.8 12.1 No  
    Generalized constant expressions N2235 No 4.6 No 3.1  
    Alignment support N2341 No 4.8 No 3.0  
    Delegating constructors N1986 Nov 12 4.7 No 3.0  
    Inheriting constructors N2540 No 4.8 No No  
    Explicit conversion operators N2437 Nov 12 4.5 No 3.0  
    New character types N2249 No 4.4 No 2.9  
    Unicode string literals N2442 No 4.5 No 3.0  
    Raw string literals N2442 Nov 12 4.5 No 3.0  
    Universal character name literals N2170 No 4.5 No 3.1  
    User-defined literals N2765 No 4.7 No 3.1  
    Standard Layout Types N2342 11.0 4.5 No 3.0  
    Defaulted and deleted functions N2346 No 4.4 12.0 3.0  
    Extended friend declarations N1791 10.0 4.7 12.0 2.9  
    Extending sizeof N2253 No 4.4 No 3.1  
    Inline namespaces N2535 No 4.4 No 2.9  
    Unrestricted unions N2544 No 4.6 No 3.1  
    Local and unnamed types as template arguments N2657 9.0 4.5 12.0 2.9  
    Range-based for N2930 11.0 4.6 13.0 3.0 Boost.Foreach
    Explicit virtual overrides N2928 11.0 4.7 No 3.0 #define
    Minimal support for garbage collection and reachability-based leak detection N2670 10.0 No No No  
    Allowing move constructors to throw [noexcept] N3050 No 4.6 No 3.0  
    Defining move special member functions N3053 No 4.6 No 3.0  

    C++11 Core Language Features: Concurrency

    Language Feature Proposal MSVC GCC ICC Clang 替代方案
    Sequence points N2239 No No No No  
    Atomic operations N2427 11.0 4.4 13.0 3.1 Boost.Atomic
    Strong Compare and Exchange N2748 11.0 No No 3.1  
    Bidirectional Fences N2752 11.0 No No 3.1  
    Memory model N2429 No No No No  
    Data-dependency ordering: atomics and memory model N2664 11.0 No No No  
    Propagating exceptions N2179 10.0 4.4 12.0 2.9 Boost.Exception
    Abandoning a process and at_quick_exit N2440 No No No No  
    Allow atomics use in signal handlers N2547 No No No 3.1  
    Thread-local storage N2659 No 4.8 No No Boost.Thread
    Dynamic initialization and destruction with concurrency N2660 No No No No  

    C++11 Core Language Features: C99

    Language Feature Proposal MSVC GCC ICC Clang 替代方案
    __func__ predefined identifier N2340 No 4.3 11.1 2.9 __FUNCTION__
    C99 preprocessor N1653 No 4.3 11.1 2.9  
    long long N1811 9.0 4.3 11.1 2.9 __int64
    Extended integral types N1988 No No No No  
     
    分享到:
  • 相关阅读:
    正则表达式
    数组去重
    [WOJ4354] 蜀石经
    [NOI2002] 银河英雄传说
    [洛谷P2186] 小Z的栈函数
    [洛谷P2756]飞行员配对方案问题
    [洛谷P2071] 座位安排
    [洛谷P2417]课程
    [洛谷P1640] [SCOI2010]连续攻击游戏
    [洛谷P3512 [POI2010]PIL-Pilots]
  • 原文地址:https://www.cnblogs.com/gongminmin/p/2831062.html
Copyright © 2011-2022 走看看