C11新标准具体有哪些变化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1562个文字,预计阅读时间需要7分钟。
C++11 引入了许多新特性,以下是一些主要特点:
- 使用 nullptr 替代 NULL- 引入 auto 和 decltype 关键字实现类型推导- 基于范围的 for 循环:`for(auto i : res) {}`- 类和结构体中的初始化列表- Lambda 表达式(匿名函数)- std::forward 函数转发参数
1、C++11有哪些新特性?
- nullptr替换了NULL
- 引入了auto和decltype这两个关键字实现类型推导
- 基于范围的for循环for(auto& i : res){}
- 类和结构体中初始化列表。
- Lambda表达式(匿名函数)
- std::forward_list(单向链表)
- 右值引用和move语义
2、auto、decltype和decltype(auto)的用法
(1)auto
C++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型。和原来那些只对应某种特定的类型说明符不同。
auto让编译器通过初始值来进行类型推演。从而获得定义变量的类型,所以说auto定义的变量必须有初始值。
int a = 1, b = 2;
auto c = a + b; // a和b必须被初始化,所以在类型推演的时候需要使用a和b的类型。
(2)decltype
c++11新标准引入的第二种说明符decltype,它的作用是选择并返回操作数的数据类型。再次过程中,编译器只是分析表达式并得到它的类型,却不进行实际的计算表达式值。
本文共计1562个文字,预计阅读时间需要7分钟。
C++11 引入了许多新特性,以下是一些主要特点:
- 使用 nullptr 替代 NULL- 引入 auto 和 decltype 关键字实现类型推导- 基于范围的 for 循环:`for(auto i : res) {}`- 类和结构体中的初始化列表- Lambda 表达式(匿名函数)- std::forward 函数转发参数
1、C++11有哪些新特性?
- nullptr替换了NULL
- 引入了auto和decltype这两个关键字实现类型推导
- 基于范围的for循环for(auto& i : res){}
- 类和结构体中初始化列表。
- Lambda表达式(匿名函数)
- std::forward_list(单向链表)
- 右值引用和move语义
2、auto、decltype和decltype(auto)的用法
(1)auto
C++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型。和原来那些只对应某种特定的类型说明符不同。
auto让编译器通过初始值来进行类型推演。从而获得定义变量的类型,所以说auto定义的变量必须有初始值。
int a = 1, b = 2;
auto c = a + b; // a和b必须被初始化,所以在类型推演的时候需要使用a和b的类型。
(2)decltype
c++11新标准引入的第二种说明符decltype,它的作用是选择并返回操作数的数据类型。再次过程中,编译器只是分析表达式并得到它的类型,却不进行实际的计算表达式值。

