更多编译器对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 FeatureProposalMSVCGCCICCClang替代方案
Rvalue referencesN211810.04.312.02.9Boost.Move
Rvalue references for *thisN2439NoNoNo2.9 
Initialization of class objects by rvaluesN16109.04.311.12.9 
Non-static data member initializersN2756No4.7No3.0 
Variadic templatesN2242Nov 124.312.12.9 
Extending variadic template template parametersN2555Nov 124.4No2.9 
Initializer listsN2672Nov 124.4No3.1 
Static assertionsN172010.04.311.12.9Boost.StaticAssert
auto-typed variablesN198410.04.412.02.9Boost.Typeof
Multi-declarator autoN173710.04.412.02.9Boost.Typeof
Removal of auto as a storage-class specifierN254610.04.412.02.9Boost.Typeof
New function declarator syntaxN254110.04.412.02.9Boost.ReturnType
New wording for C++11 lambdasN292710.04.512.03.1Boost.Lambda
Declared type of an expressionN234310.04.312.02.9Boost.Typeof
Incomplete return typesN327611.0No12.13.1 
Right angle bracketsN17579.04.311.12.9TR1
Default template arguments for function templatesDR226Nov 124.312.12.9 
Solving the SFINAE problem for expressionsDR339No4.412.12.9 
Template aliasesN2258No4.712.13.0 
Extern templatesN19879.04.311.12.9 
Null pointer constantN243110.04.612.13.0自己实现的null_ptr
Strongly-typed enumsN234711.04.4No2.9#define
Forward declarations for enumsN276411.04.6No3.1 
Generalized attributesN2761No4.812.1No 
Generalized constant expressionsN2235No4.6No3.1 
Alignment supportN2341No4.8No3.0 
Delegating constructorsN1986Nov 124.7No3.0 
Inheriting constructorsN2540No4.8NoNo 
Explicit conversion operatorsN2437Nov 124.5No3.0 
New character typesN2249No4.4No2.9 
Unicode string literalsN2442No4.5No3.0 
Raw string literalsN2442Nov 124.5No3.0 
Universal character name literalsN2170No4.5No3.1 
User-defined literalsN2765No4.7No3.1 
Standard Layout TypesN234211.04.5No3.0 
Defaulted and deleted functionsN2346No4.412.03.0 
Extended friend declarationsN179110.04.712.02.9 
Extending sizeofN2253No4.4No3.1 
Inline namespacesN2535No4.4No2.9 
Unrestricted unionsN2544No4.6No3.1 
Local and unnamed types as template argumentsN26579.04.512.02.9 
Range-based forN293011.04.613.03.0Boost.Foreach
Explicit virtual overridesN292811.04.7No3.0#define
Minimal support for garbage collection and reachability-based leak detectionN267010.0NoNoNo 
Allowing move constructors to throw [noexcept]N3050No4.6No3.0 
Defining move special member functionsN3053No4.6No3.0 

C++11 Core Language Features: Concurrency

Language FeatureProposalMSVCGCCICCClang替代方案
Sequence pointsN2239NoNoNoNo 
Atomic operationsN242711.04.413.03.1Boost.Atomic
Strong Compare and ExchangeN274811.0NoNo3.1 
Bidirectional FencesN275211.0NoNo3.1 
Memory modelN2429NoNoNoNo 
Data-dependency ordering: atomics and memory modelN266411.0NoNoNo 
Propagating exceptionsN217910.04.412.02.9Boost.Exception
Abandoning a process and at_quick_exitN2440NoNoNoNo 
Allow atomics use in signal handlersN2547NoNoNo3.1 
Thread-local storageN2659No4.8NoNoBoost.Thread
Dynamic initialization and destruction with concurrencyN2660NoNoNoNo 

C++11 Core Language Features: C99

Language FeatureProposalMSVCGCCICCClang替代方案
__func__ predefined identifierN2340No4.311.12.9__FUNCTION__
C99 preprocessorN1653No4.311.12.9 
long longN18119.04.311.12.9__int64
Extended integral typesN1988NoNoNoNo 

 

 
分享到:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Intel C++ 编译器Windows版》(Intel.C.Plus.Plus.Compiler.v10.0.026)[Bin] 软件版权归原作者及原软件公司所有,如果你喜欢,请购买正版软件 常驻服务器 : DonkeyServer No2, 7x24, 根据工作需要暂停 [版本说明] 截止到2007-08-15为最新版, 仅包含Windows平台, 支持 IA32 / Intel64 / IA64处理器 [病毒检测] NOD32 v2.7 2007-08-15 [安装测试] Windows 2003 SP2 / Visual Studio 2005 SP1 [产品主页] [ http://www.intel.com/cd/software/products/...9578.htm ] [产品简介] 个人翻译, 以原版英文为准: 概要: -------------------------------------------------------------------------------- Intel C++编译器专业版为创建多线程应用程序提供最好的支持。只有专业版才提供对高级优化、多线程和处理器支持(?)。包括自动处理器派发、向量化、自动并行处理、OpenMP*、数据预取、循环展开,还有为并行化、数学运算和多媒体库而高度优化的C++模版。 专业版把高效的编译器和Intel® Threading Building Blocks (Intel® TBB), Intel® Integrated Performance Primitives (Intel® IPP) and Intel® Math Kernel Library (Intel® MKL)整合到了一起。虽然这些库也可以单独获取,但是专业版在一个显著折扣价位上为构建稳定高效的并行代码提供了一个强大的基础。 标准版编译器和专业版有着相同的效能和特性, 但是不提供多线程库。 特性: -------------------------------------------------------------------------------- 效能: 考虑使用Intel C++编译器专业版来最佳化效能。内间的优化技术和多线程支持帮助您创建可以在最新的多核处理器上运行best的代码。 高级优化特性: 使用IntelC++编译器Windows版编译的软件可以受益于高级优化特性, 这里有一些简要介绍, 并且链接到完整描述: * Multi-Threaded Application Support, including OpenMP and auto-parallelization for simple and efficient software threading. * Auto-vectorization 并行化代码来利用最新处理器的SSE指令集构架(SSE, SSE2, SSE3, SSSE3, and SSE4)。 * High-Performance Parallel Optimizer (HPO)(高效能并行优化器) 重新组织和优化循环来确定auto-vectorization, OpenMP, or auto-parallelization 最好的利用处理器的缓存、内存访问、SIMD指令集和多核能力。这个由10.0版本而来得新的革命性的能力,组合了向量化、并行化和循环转化到一个比先前分散模块更快、更有效率和更可靠的单个过程。 * Interprocedural Optimization (IPO) 大幅的改善了被频繁使用的中小规模函数的效能,尤其是在循环内包含调用的程序。这个优化器的分析能力还可以对代码弱点和代码错误给出反馈,诸如未初始化的变量或者OpenMP API issues这些严格依赖编译器前端的编译器不能检测到的状况。 * Profile-guided Optimization (PGO) 通过减少指令缓存thrashing、重新组织代码布局、收缩代码大小和降低分支预测失败来改善程序效能。 * Optimized Code Debugging with the Intel® Debugger(使用Intel调试器调试优化后的代码)改善了为Intel架构优化代码的调试过程的效率. 本版本新特性: -------------------------------------------------------------------------------- 此Intel C++编译器Windows版本构建于一个winning foundation之上。它使您能够为下一代硬件创建下一代应用。 改善的效能和Threading * 新的并行/循环优化器 * 改善的C++优化 * 异常处理和类层次分析 安全监测和诊断 * 缓冲区溢出静态验证 * OpenMP API 验证 VISTA 和 Visual Studio 2005 支持 优化报告 支持最新的多核处理器 * Intel® Core™2 Duo processor * Intel® Core™2 Quad processor * Quad-Core Intel® Xeon® processor 5300 series * Dual-Core Intel® Xeon® processor 3000 series * Dual-Core Intel® Xeon® processor 5000 series * Dual-Core Intel® Xeon® processor 7000 series * Dual-Core Intel® Itanium® 2 processor 提供专业版本 Advanced Optimization Features in Depth -------------------------------------------------------------------------------- ... ... 兼容性和适应性 -------------------------------------------------------------------------------- ... ... 可与Microsoft Visual Studio 2005, Visual Studio .NET 2002/2003, and Visual Studio 98集成,并提供扩展的32位和64位多核Intel处理器支持。 Intel C++ 编译器提供下列语言一致性 * ANSI/ISO C 语言标准一致性 (ISO/IEC 9899:1990) * ANSI/ISO C++语言标准一致 (ISO/IEC 14882:1998) * OpenMP 规范版本 2.5 系统需求

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值