当我们在主函数中使用“1”去实例化Kitten这个结构体时,在编译的时候,静态断言static_assert会测试参数N的值,当N的值小于 2时就会产生一个断言错误,并将相应的调试帮助信息输出到“Error List”窗口中,这样程序员就可以对问题快速定位,解决问题就更加方便了。
新特性之三:auto关键字
在C++0x中,auto关键字的意义发生了改变。从Visual C++ 2010开始,auto关键字将用于指引编译器根据变量的初始值来决定变量的数据类型。换句话说,我们可以把auto当成一种新的数据类型,它可以“从初始化器(initialize)中推导出所代表的变量的真正类型”。这种对auto关键字的使用方式可以大大消除当前替代方式所导致的冗长和易出错的代码。
在这段代码中,我们使用auto关键字来代替了真正的数据类型map<string, string>::iterator,这使得整个代码自然而简洁。这样通过代码的形式我们不难发现,Visual Studio 2010中auto关键字的使用能帮助开发者在开发时带来不少的好处。
新特性之四:右值引用
作为最重要的一项语言特性,右值引用(rvalue references)被引入到 C++0x中。我们可以通过操作符“&&”来声明一个右值引用,原先在C++中使用“&”操作符声明的引用现在被称为左值引用。 左值引用和右值引用的表现行为基本一致,它们唯一的差别就是右值引用可以绑定到一个临时对象(右值)上,而左值引用不可以。如下例:
在第一行代码中,我们看到当将一个临时对象int()绑定到一个左值引用,这时就出现错误提示了,而在第二行中,改为右值引用,则不会出现错误情况。
以上提到的四点不过是Visual Studio 2010中的冰山菱角,更多的功能以及特性还是要我们在开发时通过自己的体验会挖掘出更多值得我们欣喜的东西来,特别是Visual Studio 2010中的人性化功能可能在大家开发时有更多的体会,欢迎大家交流。