Visual Studio“14”CTP

今天 Visual Studio“14”CTP 他被释放了。索玛把这一切都写在他的书里 博客 . 继续点击并阅读文章,特别是关于Visual C++一致性更新与更新一致性路线图的部分。

null

暂停。

很酷吧?

下面是VisualC++的改进:

  • 广义lambda捕获: 可以将表达式的求值结果赋给lambda的capture子句中的变量。这允许通过值捕获仅移动类型的实例。
  • 语言和标准库中的用户定义文字: 您可以使用有意义的后缀来附加数字和字符串文字,从而为它们提供合适的语义。编译器将这些后缀转换为对适当的UDL运算符函数的调用。头现在为方便起见提供了文本运算符。例如,“1729ms”表示 标准::计时::毫秒(1729) “喵喵”的意思是 标准::字符串(“喵”) ,3.14i表示 标准::复合(0.0,3.14) .
  • 完成的无异常: 您可以使用 无例外 接线员。例如, 无异常(func()) 将返回“true”如果 功能 被指定为 无例外 .
  • 内联命名空间: 您可以将嵌套命名空间指定为“inline”,以便从其父命名空间访问其内容。
  • 线程安全的“魔术”静态: 静态局部变量以线程安全的方式初始化,消除了手动同步的需要。请注意,除了初始化之外,这些变量的使用仍然不受保护。可以使用禁用线程安全 /Zc:线程安全初始化- 以避免对CRT的依赖。
  • 无限制工会: 可以定义包含具有非平凡构造函数的类型的联合。必须手动定义此类联合的构造函数。
  • 包括2013年11月编译器CTP功能: 在2013年11月的编译器中,所有的新的C++ 11和C++ 14语言特性也被包含在VisualStudio 2013中。去吧 在这里 所有的细节。
  • 空正向迭代器: 标准库的前向迭代器(和更强的)现在保证值初始化迭代器的比较是相等的。这使得在没有父容器的情况下传递空范围成为可能。请注意,通常情况下,值初始化迭代器仍然无法与父容器中的迭代器进行比较。
  • 引用(): 这些操纵器允许iostream保留包含空格的字符串。
  • 异类关联查找: 当它由特殊的比较器(如 更少<> 更大<> 透明运算符函子),有序关联容器获得模板化查找函数。这使它们可以处理与键类似的对象,而不必实际构造键。
  • 整数u序列: 现在支持编译时整数序列,以简化模板元编程。
  • exchange(): 这个小的实用函数使得为对象分配新值和检索旧值变得很方便。
  • 获取(): 这使得元组元素可以通过其类型(唯一时)而不是索引进行访问。
  • Dual range equal(),is u permutation(),mismatch(): C++ 98的“Range-1.5”算法(第一、LAST1、FiST2)难以正确使用。当它们仍然被提供时,C++ 14增加了过载(FLAST1、LAST1、FILST2、LAST2),它们使用起来更容易和更安全。
  • 元组元素: 添加此别名模板是为了方便并与类型别名模板保持一致。
  • 文件系统“V3”技术规范(TS): 对文件系统的接口和实现进行了详细的检查,并将其引入到C++ 17中。
  • 图书馆问题: 已经执行了24项决议(例如, 你是最终决定吗 , 使u反向u迭代器() ),不包括已经在VisualC++ 2013中实现的解决方案。注意,库问题是针对该标准的错误报告。它可以通过修复规范问题甚至添加一个小特性来解决。
  • 修复: 时钟被改写为一致的和精确的。
  • 最小分配器修复 :多个库组件(包括 基本字符串 std::函数 不使用用户定义的分配器实现C++ 11的最小分配器接口,而是需要C++ 03的冗长分配器接口。此问题的所有出现都已修复。
  • C99库功能: 剩下的大多数C99库功能都已实现。 snprintf公司 实施后 打印F 扫描 函数系列现在支持新的C99格式字符串改进,即 字符串转换为浮点数 扫描 函数族现在支持十六进制浮点和l 图书馆的合规性得到了更好的提高 通过软件更新和调整。
  • __限制: 这个 __限制 除了指针类型外,引用类型现在还支持关键字。
  • 改进的诊断: 编译器现在将发出有关以前不会产生警告的可疑代码的警告。例如,阴影变量现在将导致警告。警告也更加明确。
  • /Wv标志: 你可以用 /女:XX.YY.ZZZZ 禁用编译器版本XX.YY.ZZZZ之后引入的警告。请注意,发出的警告可能仍与指定版本发出的警告不同。
  • 编译器软件更新 :我们修复了编译器中的400多个错误。其中179个是由用户通过Microsoft Connect提交的。
  • 重构的C运行时(CRT): 这个CTP包含了基本上重构的CRT的第一个预览。msvcr140.dll不再存在。它被三个dll所取代:vcruntime140.dll、appcrt140.dll和desktopcrt140.dll。
  • 标准性能: 许多性能改进是在 斯特迪奥 图书馆,尤其是 把格式数据写成串 sscanf公司 函数族。
  • 对象文件大小缩减: 与编译器修复一起工作时,STL的头文件会被更改,以显著减小对象文件和静态库的大小(即编译之后但链接之前)。链接的EXE/DLL的大小不受影响)。例如,当编译包含所有C和C++标准库头的源文件,并且不与它们一起做任何其他操作时,对于x86与/MD /O2,Visual C++ 2013生成731 kb的对象文件。这被改进为小于1KB。
  • 调试检查修复: STL的调试检查拒绝作为迭代器传递的空指针,即使标准保证它们应该工作(例如,将两个[null,null]范围合并到一个空输出)。每一种算法都经过检验和修正。
  • 创建声明或定义 :您可以快速创建与其相邻函数相关的函数声明或定义。为此,右键单击声明或定义,或使用 智能标签 .
  • 调试器可视化工具: 可以将NATVIS调试器可视化文件添加到Visual C++项目中,以便于管理和源代码集成。添加到项目中的Natvis文件将优先于项目外部的可视化工具。
  • 本机内存诊断:
    • 您可以启动内存诊断会话( Alt+F2键 )监视本机应用程序的实时内存使用情况。这支持Windows桌面。
    • 您可以捕获内存中正在运行的进程的堆快照,以查看本机分配的类型和实例。
    • 您可以查看两个内存快照之间的内存分配差异。
    • 通过使用调试器对堆进行更深入的分析,可以深入查看进程快照的内存内容。

要查看整个发行说明、已知问题和安装要求,请转到 在这里 .

已知问题包括:

  • 只是我的密码 设置已打开。关闭此设置将允许表达式计算正常工作。
  • 新版本VisualC++语言的特性在VisualStudio编辑器中没有完全的智能感知支持。
  • 这个 无例外 在涉及复杂模板的场景中,运算符可能会失败。
  • 目前,用户定义的文字可能会生成错误的代码 /清除 . 还不支持非常大的文本。
  • 此版本的编译器不支持代码分析。如果你想用 /分析 ,编译器将发出警告并忽略该标志。
  • 使用Visual C++来构建Windows Phone 8.1应用程序还没有得到支持。
  • Windows Store 8.1应用程序使用VisualC++编写,使用该预览编译器将不会被Windows应用程序验证工具包验证,这些应用程序将依赖于桌面DLL而不是由商店应用程序专用的“Lay-App”版本的DLL。这将在以后的版本中得到纠正。

请记住,这是一个CTP,不适用于生产环境。

我们为这个CTP感到骄傲,并感谢您的持续反馈,无论是积极的还是不那么积极的。在本周和下周大部分时间里,从VisualC++团队的成员那里寻找关于CTP特性的新文章。

请尝试Visual Studio“14”CTP并给我们您的反馈。使用报告错误 连接 分享你的建议 送一个微笑 从IDE内部或我们的 用户语音 地点。你也可以在下面留下你的评论。

非常感谢。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享