BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Visual Studio提升了对C++14的支持

| 作者 Jeff Martin 关注 16 他的粉丝 ,译者 孙镜涛 关注 2 他的粉丝 发布于 2013年11月28日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

在今年的七月份Microsoft就发布了将现代C++集成到Visual Studio中的路线图。Visual Studio 2013中将会包含的C++语言特性在那个时候就已经固定了下来,现在一个新的CTP版本已经发布了,该版本让VC++更加接近于C++14。

该包的标题为Visual C++ Compiler November 2013 CTP,它提供了下面的特性:

  • 隐式移动(move)特殊的成员函数(也实现了=default)
  • 成员函数上的引用限定符(也称为 "& and && for *this"
  • 线程安全的函数本地静态初始化(也称为“神奇的静态化”)
  • 继承构造函数
  • alignof/alignas
  • __func__
  • 扩展的sizeof
  • constexpr (除了构造函数)
  • noexcept(无条件的)
  • C++14 decltype(自动)
  • C++14 auto 函数返回值类型推理
  • C++14 泛型lambda(支持显式的lambda捕获列表)
  • (C++17的提议) 可恢复的函数和 await

对于那些对该包感兴趣的早期采纳者而言,一个重要的细节是该包并没有包含“Go Live”许可,这意味着它不能在产品代码开发中使用。根据Microsoft公司的Stephen T. Lavavey所提供的信息,该版本以及将来的Visual Studio 2013 VC++ CTP版本都不会包含“Go Live”许可。总之,Visual Studio Next将会是最快的可以在产品环境中使用这些特性的版本。Lavavey还透露,下面的C++11核心语言特性依然悬而未决:“表达式SFINAE、属性(包含用于数据依赖排序的那些)、成员函数上的常量表达式(constexpr)、char16_t/char32_t、Unicode字符串字面值、字面值中的通用字符名、用户定义的字面值、内联命名空间、自由的(unrestricted)联合、有条件的noexcept、thread_local和遵循C99规范的预处理器….”。

Microsoft已经发布了一篇文档,其中列出了在使用该CTP的时候用户有可能会遇到的一些痛点。特别是智能感知(IntelliSense)和IDE某些区域不支持的新关键词。另外一个需要注意的内容是await关键词需要Windows 8.1,同时不要在使用析构函数的时候抛出异常。

查看英文原文Visual Studio's C++14 Support Grows

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT