Visual Studio "14"聚焦下一代C++规范

Visual Studio “14”的第一个预览版本包含了下一个C++ 11/14依从性层次将要包含的细节。微软的高级开发人员Stephen T. Lavavej就C++14在Visual Studio “14”中的支持层次撰文补充了一些额外的细节

这一工作是针对VS2013RTM所做的修改,覆盖了三大类:标准模板库(STL)补充、STL修正和STL的非兼容性修改。值得注意的是,Lavavej介绍说,“14”中C++ STL的相关工作主要是4位开发者完成的:Lavavej、P.J. Plauger、Artur Laksberg和James McNellis。

“14”中对STL的补充全部基于已批准的C++14规范以及Filesystem V3这一技术规范:

  1. N3642 <chrono>/<string> UDLs
  2. N3644 Null Forward Iterators
  3. N3654 quoted()
  4. N3657 Heterogeneous Associative Lookup
  5. N3658 integer_sequence
  6. N3668 exchange()
  7. N3670 get<T>()
  8. N3671 Dual-Range equal()/is_permutation()/mismatch()
  9. N3779 <complex> UDLs
  10. N3887 tuple_element_t
  11. N3940 Filesystem "V3" Technical Specification

解决了十多项C++14中列出的库问题,还包含了一些对现有STL的修正:<chrono>中的Clock支持有所改进,<atomic>改进了编译时间校正(不再包含内联X86汇编),还有一个从2006开始就一直存在于<locale>中的bug也被修正了。

生成的目标文件更为高效,而且通常要比VS2013生成的小得多。regex支持上也有很多改进, 修复了一些bug,并提供了一个更为稳定的实现。

使用gets()的开发者应该注意,该函数已经被从C++11和C++14中移除,所以在Visual Studio中,gets()将由CRT(C语言运行时)中的<stdio.h>提供,不会再存在于STL的<cstdio>中。

Lavavej提到,除了这些修改,有些地方的修改破坏了向后兼容性。受影响的地方包括Filesystem的V3接口带来的修改(与V2相比),以及_USE_32_BIT_TIME_T的使用会触发编译器警告。iostreams中还有一个与其浮点数解析方式有关的已知bug,开发仍在进行。

如果有意全面了解所有细节,一定要阅读一下Lavavej的文章

分类:管理 时间:2015-05-04 人气:1641
本文关键词: 开发工具
分享到:

相关文章

iOS 开发

Android 开发

Python 开发

JAVA 开发

开发语言

PHP 开发

Ruby 开发

搜索

前端开发

数据库

开发工具

开放平台

Javascript 开发

.NET 开发

云计算

服务器

Copyright (C) codeweblog.com, All Rights Reserved.

CodeWeblog.com 版权所有 闽ICP备15018612号

processed in 0.035 (s). 12 q(s)