不同的C ++编译器在不同的时间点实现各种语言功能(例如,参见clang C ++ status和gcc c ++ status;同样适用于其他编译器)。 在创建C ++库时,通常需要支持最新功能以改善用户体验。 当支持新功能而不是在任何地方实现的公共子集时,了解编译器支持哪些功能而不必为每个编译器支持一组版本号是有帮助的。

是否有合理标准化的功能测试集可以在编译时用于确定编译器是否支持特定的语言功能?

对于声誉很高的人来说,这是一个非常糟糕的问题。 这是非常自以为是的。

@EdHeal从实际角度来看也非常重要

可能已经被程序员回答了.stackexchange.com / items / 199708 /

@EdHeal:问题可能有一定程度的意见。 我也认为有一个完全中立的答案。

@PeterM:虽然我看了,但我没有在那里找到问题。 奇怪的是,它也被认为是偏离主题的 - 也许它在这里是主题。

我所做的只是谷歌c++ compiler test suite,这是最重要的链接

第二个链接是opengroup.org/testing/testsuites/perenial.htm

您可能无法比Boost.Config库做得更好。它定义了各种C ++ 11和C ++ 14特性的预处理器宏,这些特性在VC ++等C ++ 11/14-ish编译器上并不普遍支持。它就像你要达到标准一样接近。

IIRC,它与autoconf类似,通过预建(并在必要时执行)一堆简单的测试程序。我不认为你会得到任何完全在编译时运行的东西,只是因为在一个实现中存在关键字,而在另一个实现中存在语法错误。

这个答案是一般定理的必然结果,如果你有C ++问题,首先看看Boost是否有答案。

"IIRC,它与autoconf类似,通过预建(并在必要时执行)一系列简单的测试程序。" 不,Boost.Config实际上是完全编译时,每个编译器,标准库和平台配置使用版本检测宏来选择性地启用随后通过宏而不是关键字使用的功能。

我没有尝试使用这些建议,但在C ++委员会会议上,功能测试SG(SG10)满足并更新了一系列建议。这是列出当前功能测试宏的最新文档:有各种语言级功能的宏。期望在将新功能投入工作草案时更新文档P0096rx。

本文档不是标准文档:标准要求实现语言标准,标准化宏指示是否实现特定功能是没有意义的!实现要么完全符合要么不符合要求。但是,期望编译器供应商确实使用这些宏作为帮助用户的指导。

不幸的是,上次我检查MSVC没有计划实现功能测试宏。

c 11 主要的新语言特性,关于c ++ 11:有没有办法确定C ++编译器实现的语言特性?...相关推荐

  1. c 11 主要的新语言特性,C 11系列

    什么是C++0x? C++0x是C++最新标准标准化过程中的曾用名,在这一系列文章中我们将介绍最新标准添加的一系列新的语言特性.在2011年9月份,C++0x正式由官方发布并命名C++11,现在很多编 ...

  2. Java 11正式发布,新特性解读

    不知不觉 JDK 11 已经发布了,从 9 开始,JDK 进入了让人学不动的更新节奏,对于广大 Java 工程师来说,真是又爱又恨,Java 演进快速意味着它仍将能够保持企业核心技术平台的地位,我们对 ...

  3. Java 11 正式发布,新特性解读

    Java 11 正式发布,新特性解读 杨晓峰   2018 年 9 月 26 日 话题:Java语言 & 开发 不知不觉 JDK 11 已经发布了,从 9 开始,JDK 进入了让人学不动的更新 ...

  4. Visual Studio 11 九大新特性:图文详解【转】

    转自: [IT168 技术]导读:之前Visual Studio 11开发者预览版发布的消息受到了众多技术人员的关注和讨论.日前Visual Studio 11最新的Beta版本在巴塞罗那正式推出.我 ...

  5. 【C++11新特性】 C++11智能指针之weak_ptr

    http://blog.csdn.net/xiejingfa/article/details/50772571 原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/ar ...

  6. c++11新特性_【C++11新特性】 C++11智能指针之weak_ptr

    如题,我们今天要讲的是 C++11 引入的三种智能指针中的:weak_ptr. 在学习 weak_ptr 之前最好对 shared_ptr 有所了解.如果你还不知道 shared_ptr 是何物,可以 ...

  7. C++11/14/17 新特性总结

    C++11/14/17 新特性总结 initializer_list std::vector<int> vctInts({92, 12, 39, 46, 92, 84, -1, 0, -2 ...

  8. Java 11中的新功能和API详解系列1

    Java 11中的新功能和API详解系列1 2018.9.27 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载. JDK 11在语言语法方面有一个小改动,增加了相当数量的新API,以及 ...

  9. C++11 -------- 类的新功能+可变参数模板+emplace接口

    目录 类的新功能 1.默认成员函数 (1)八个默认成员函数 (2)默认移动构造和移动赋值的生成条件 (3)默认生成的移动构造和移动赋值会做什么 (4)验证默认生成的移动构造和移动赋值所做的工作 2.类 ...

最新文章

  1. sqlserver 类似oracle的rownum功能: row_number
  2. 电脑编程教学_河东CNC产品零件编程培训量身定制课程大纲
  3. centos 7 备份代码,然后回滚
  4. 《Linux From Scratch》第一部分:介绍 第一章:介绍-1.3. 更新日志
  5. 【C++深度剖析教程28】C++对象模型分析
  6. Vue.js 2 入门与提高(一)
  7. Hive metastore入门
  8. 留学时在海外如何解决国内手机验证码问题?
  9. 【信号与系统】Multisim 仿真抽样定理与信号恢复
  10. 23_STM32调试和下载:SW配置
  11. 如何利用eclipse创建一个java web项目?
  12. 201621123030《Java程序设计》第3周学习总结
  13. 音频倍速(变速不变调)的实现
  14. 关于motionevent的使用
  15. 最新天龙八部环境-GS环境教程-【长期稳定版本】+ 视频教程
  16. VBoxManager很强大哈!
  17. 飞得更高(五)下马威
  18. Micropython史上最友好的编辑器,小巧精悍
  19. 谷歌play 数据接口_如何检查,管理和清除Google Play服务存储的数据/缓存
  20. 小恐龙游戏制作挑战:第8天-确定图片如何制作

热门文章

  1. mysql的datetime使用_datetime数据类型 MySQL数据库使用教程
  2. java银行叫号模拟系统_Java 模拟银行叫号机
  3. IOS 企业版发布后,用户通过sarafi浏览器安装无效的解决方案
  4. 2013年 省职业学校 公共基础课程 两课 评比 计算机应用,江苏省职业学校公共基础课程两课评比教案.doc...
  5. 安装TCExam经验
  6. Win10系统,安装虚拟机,是微软自家的 Hyper-V ?还是轻量级的 Virtual Box ?
  7. MQ产品比较-ActiveMQ-RocketMQ
  8. 探讨后端选型中不同语言及对应的Web框架
  9. Packer创建阿里云本地镜像
  10. Webdriver使用Chrome模拟手机浏览器测试移动版网站