Visual Studio 2015 中的 C++11 特性
C++11 是标准 C++ 语言的一个版本。它于 2011 年 8 月 12 日由国际标准化组织 (ISO) 批准,之后是 C++14 和 C++17。C++11 对核心语言进行了一些补充。Visual C++ 实现了 C++11 中的大多数特性。
Visual Studio 2015 中的一些 C++11 特性如下:
nullptr − 在之前的版本中,零用于表示空指针,它有一个缺点,即可以隐式转换为整数值。空指针字面量由 std::nullptr_t 表示。在 nullptr 中,不存在隐式转换。
Lambda 表达式 − Lambda 表达式允许在本地定义函数。匿名函数称为 Lambda。我们可以在任何期望函数对象 std::function 的地方使用 Lambda 表达式。
auto − 在以前的版本中,我们必须指定对象的类型,但在 C++11 中,无需指定类型,这意味着您可以直接声明变量而无需指定其类型。
Override 和 Final − C++11 版本引入了两个新的特殊标识符,即 override 和 final。Override 指示该方法应该覆盖基类中的虚方法。另一方面,final 指示派生类不应覆盖虚方法。
删除和默认函数 − 删除的函数用于防止对象复制。要禁用复制,使用“ =delete; ”。默认函数指示编译器生成函数的默认实现,而“ =default; ”用于默认函数。
强类型枚举 − 在传统的枚举中,它们用于在周围作用域中导出其枚举器。它们被指定为“enum class”关键字。它们不会在其周围作用域中导出其枚举器。
Static_assert 和类型特征 − 它在编译时执行断言检查。如果断言为真,则不显示任何内容,否则,它将显示错误消息。
基于范围的 for 循环 − C++11 引入了基于范围的 for 循环来迭代集合。现在,可以像迭代 C 数组一样进行迭代。它支持迭代的“foreach”范式。