评论

收藏

[C++] Visual Studio 11开发指南(8)Visual C++ 11新特色

编程语言 编程语言 发布于:2021-07-22 17:09 | 阅读数:259 | 评论:0


Metro界面的开发模板

新增了驱动开发支持

改进的C++ 11标准的支持

-------------------------------------------------- ------------------------------

标准模板库
 
作为在Visual Studio 11开发人员预览版的C + 11规范的支持的一部分,标准模板库(STL)支持在Visual Studio扩展,以提供额外的编程结构,规范要求。亮点包括以下内容:

支持新头文件<atomic>,<chrono>,<condition_variable>,<filesystem>,<future>,<mutex>,<ratio>,并<thread>。

为了优化存储资源的使用,所有容器都较小,字节都缩减了。


其他C ++ 11增强

升级的迭代器:由于在C + 11标准,升级的迭代器所允许的,
无限制的lambda表达式,这是代码的开头,一个空的λ指针[]和捕捉没有局部变量,现在隐式转换为函数指针由C + 11标准的要求。

作用域枚举支持。在C + +枚举类枚举键是现在支持。
VISUAL C + +编译器和链接

-------------------------------------------------- ------------------------------
自动矢量器。最大的潜在的性能收益之一是并行而不是按顺序做的事情。的Visual Studio 11开发人员预览版提供任务级别的并行性,而且在循环水平,自动。 C + +的编译器会自动向量化循环,如果可能的话。矢量重组一个循环,例如,求和循环,使CPU可以同时执行多个迭代。通过使用自动矢量化,可循环快8倍的支持SIMD指令的CPU上执行时。例如,大多数现代处理器支持SSE2指令集,它允许编译器指示处理器,4个数字,在时间上做数学运算。

因为编译器可以识别可向量化的循环,当您编译您的代码,这会自动发生。

自动parallelizer。的Visual Studio 11开发人员预览版改进的方式,你可以利用多处理器和多核硬件的优势。随着自动parallelizer,一个循环是重组,因此,它可以在同一时间执行多个线程。这意味着你的应用程序可以利用多核处理器和多处理器的优势,分发大块的工作到所有可用的处理器。 parallelizer自动重组循环和执行多个任务,而不需要任何新的代码添加到您的应用程序。你可以告诉编译器的循环使用#pragma并行指令并行。

自动向量化和自动并行化之间有一些关键的差别。首先,自动矢量化总是和无需用户交互,而自动并行化要求程序员决定将并行的循环。此外,矢量提高单核CPU,支持SIMD指令循环的性能,同时并行提高了多CPU和多核CPU的循环性能。这两种功能可以一起工作,使一个矢量的循环,然后跨多个处理器并行。


C + +加速大规模并行处理(AMP)的支持。 C + +的AMP加速你的C + +代码的执行,通常是作为GPU独立显卡的数据并行硬件的优势。在C + + AMP的编程模型,包括多维数组,索引,内存传输,瓦片,和数学函数库。 C + +的AMP语言扩展和编译器的限制,使您能够控制数据是如何从CPU转移到GPU和背部。


Visual C + +库改进

-------------------------------------------------- ------------------------------
并行程序设计的改进
 
硬件移动多核心和多核心的架构,开发人员可以不再依赖不断增加,单核的时钟速度,以提高应用程序的性能。在C + +并发命名空间的并行编程支持使开发人员能够利用这些新架构的优势。

在Visual Studio 2010中,我们看到引进强大的C + +并行库,如并行模式库。我们还推出了概念来表达复杂的数据流管道的并发优势。在Visual Studio 11开发人员预览版,这些库已经扩展提供了更好的性能,更多的控制,和更丰富的并行模式,开发人员需要最为重要的支持。现在提供的广度,包括:
并行模式库,它支持的fork - join并行(parallel_for,parallel_for,parallel_for_each,parallel_sort,parallel_reduce,parallel_transform)。
一个丰富的基于任务的编程模型,支持异步和延续。


代理和消息,这让开发人员表达数据流管道,自然分解成并发单位。


并发安全的容器包装,它提供了线程安全版本的std::priority_queue等等。


IDE改进

-------------------------------------------------- ------------------------------
在Visual C + +中的Visual Studio 11开发人员预览版,集成开发环境(IDE)工具显著的改进,以帮助您更高效的编码在C + +。如需更多有关其他IDE增强信息,请参阅为Visual Studio 11开发人员预览版产品亮点。

Visual Studio模板支持。您可以现在作者C + +项目和项模板使用Visual Studio模板技术。这是以前并不支持的C + +。


C + + / CLI中的IntelliSense。的C + + / CLI现在拥有完整的intellisense支持。为C + + / CLI的所有IntelliSense功能,如快速信息,参数的帮助,成员名单,并自动完成现在的工作。此外,在这个主题中列出的新的IntelliSense和IDE增强也为C + + / CLI。


C + +的代码段。骨架代码,是提供基本的代码结构,如开关,的if - else,for循环,等等,在下拉列表成员。从列表中选择一个代码片段插入到你的代码,然后填写所需的逻辑。还可以创建自己的自定义代码片段在编辑器中使用。

列表成员增强。下拉列表成员会自动出现在键入到代码编辑器的代码。结果被过滤,使有关成员显示输入。使用文本编辑器下的“选项”对话框的成员名单,您可以控制​​过滤逻辑的类型。

语义着色。额外的C + +标识,如类型,枚举和宏,等等,现在都着色。默认情况下,启用着色。参数显示为斜体。在选项对话框中,可以指定额外的标识colorizations环境下,字体和颜色。
参考突出。您的指针上放置一个符号现在强调在当前文件中的符号的所有实例。按Ctrl + Shift +向上键或Ctrl + Shift +向下键之间移动突出引用。可以关闭此功能,在选项对话框下文本编辑器,C / C + +高级选项中。

代码质量工具

-------------------------------------------------- ------------------------------

并行调试
 
除了并行任务“窗口和并行堆栈”窗口,在Visual Studio 2010时,Visual Studio 11开发人员预览版提供了一个新的并行Watch窗口,让你观察到所有线程和进程的一个表达式的值,对结果进行排序和过滤,并延长与你自己的可视化的窗口。您还可以采取新的多进程支持所有工具窗口的优势。

C + +的加速大规模并行处理(AMP)的调试和分析调试。对于使用的应用程序的C + + AMP目标的GPU,提供熟悉的CPU Visual Studio调试经验。这包括前面提到的增加新的并行调试。调试C + + AMP的应用程序,就像调试任何C + +程序。

分析。现在有分析支持,为GPU的活动,支持C + +的AMP和其他基于Direct3D的编程模型。

静态代码分析


静态分析的C + +已更新,以提供更丰富的错误的上下文信息,更多的分析规则和更好的分析结果,在新的代码分析窗口。在此窗口中,现在可以过滤关键字,项目和严重性的消息。选择窗口中的消息,突出了在源代码编辑器的消息是触发线。对于某些C + +的警告,该消息将列出源代码行,以显示执行路径,导致警告。
其他代码分析增强包括以下内容:
新的并发警告,以帮助您确保在多线程C / C + +程序的正确锁定学科。分析仪检测到多个并发错误。这些措施包括潜在的竞争条件下,锁定顺序倒置,主叫/被叫锁定违反合同,不匹配的同步操作。
可以指定的C + +的分析规则要适用于代码分析通过创建或使用的规则集运行。
在“代码分析”窗口,您可以插入的源代码,它可以抑制选定警告的用法。

更新的单元测试框架
 使用新的C + +单元测试在Visual Studio中编写C + +单元测试框架。添加一个新的单元测试项目,以现有的C + +通过定位解决方案的C + +单元测试下的视觉项目模板的C + +类在新建项目对话框。开始写你的单元测试中生成的TEST_METHOD在Unittest1.cpp文件中的代码存根。一旦测试代码的编写,可以自动发现测试如下:生成解决方案,然后按一下打开一个单元测试的浏览器窗口查看其他Windows ->单元测试浏览器。右键单击资源管理器单元测试的测试案例的运行测试,并选择“运行选定的测试。然后,您可以查看测试结果,在试运行结束后的同一窗口和额外的堆栈跟踪信息。

体系结构依赖图
 为了更好地理解代码,现在可以生成二进制,类,命名空间的依赖关系图,包括在文件中的C + +解决方案或项目。打开菜单架构>生成依赖图 - >生成项目或解决方案为您的整体解决方案或选定项目的依赖关系图。图生成完成后,您可以探索通过扩大每个节点图,了解移动节点之间的依赖关系,并通过右击节点并选择观看内容“浏览源代码。要生成依赖图,包括文件,右键单击*. cpp源代码文件或*. h头文件,并选择“生成包含文件的图形。

层图
 使用层图来验证架构设计实现代码在C + +编写的。通过选择菜单“建筑 - >新图>层图”创建一个新的层图。开始从“工具箱”窗口拖放的形状,然后链接项目,或拖放到图中的现有项目,从解决方案资源管理器直接绘图架构。架构图完成后,右键单击图表并选择验证架构对代码运行验证。结果在“错误列表”窗口(从视图菜单中打开)。还可以生成一个图上单击右键并选择“生成依赖关系的依赖。然后,可以可视化层图上的实际代码依赖。

架构资源管理器
 架构资源管理器,可以检索的C + +解决方案,项目或文件。查找菜单架构的架构资源管理器 - >窗口 - >项目资源管理器。点击相关节点,例如,类视图。然后将扩大与所有的命名空间列表右侧的工具窗口。继续选择一个命名空间,并创建一个新列将在右侧显示这个命名空间中的类,结构和枚举列表。继续探索通过选择节点的项目,或回到最左边的列重新启动查询。

代码覆盖率
 代码覆盖率已更新动态仪器的二进制文件,在运行时,它给你较低的配置开销和提供更好的性能。还可以在Visual Studio中的C + +应用程序的单元测试的代码覆盖率数据收集。一旦创建的C + +单元测试,可以使用单元测试浏览器自动发现您的解决方案中的测试。在单元测试浏览器,选择分析代码覆盖率,这将运行单元测试,并收集这些测试的代码覆盖率数据。查看代码覆盖率结果“窗口(测试> - >”代码覆盖率结果)的代码覆盖率结果。
赶紧下载VS11体验吧
http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098144


关注下面的标签,发现更多相似文章