最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

有关auto和decltype的几个问题求助

来源:懂视网 责编:小OO 时间:2024-10-13 02:10:33
文档

有关auto和decltype的几个问题求助

1.auto关键字能够根据初始化表达式自动推断变量类型。例如。```cpp;auto i1 = 12;// i1 的类型是 int。int auto &i2 = i1;// 这里有个错误,auto不能用作类型修饰符。```;2.decltype关键字用于声明变量的类型。其推断规则如下:- 如果参数是一个标识符,则推断结果与该标识符的类型一致。- 如果参数是一个表达式,并且表达式的结果是将亡值(std::move),则推断结果为右值引用类型。- 如果参数是一个表达式,并且表达式的结果是左值,则推断结果为左值引用类型。- 其他情况与参数类型一致。例如。```cpp;int lval = 0。decltype(lval) v1 = 56;// v1 的类型是 int。
推荐度:
导读1.auto关键字能够根据初始化表达式自动推断变量类型。例如。```cpp;auto i1 = 12;// i1 的类型是 int。int auto &i2 = i1;// 这里有个错误,auto不能用作类型修饰符。```;2.decltype关键字用于声明变量的类型。其推断规则如下:- 如果参数是一个标识符,则推断结果与该标识符的类型一致。- 如果参数是一个表达式,并且表达式的结果是将亡值(std::move),则推断结果为右值引用类型。- 如果参数是一个表达式,并且表达式的结果是左值,则推断结果为左值引用类型。- 其他情况与参数类型一致。例如。```cpp;int lval = 0。decltype(lval) v1 = 56;// v1 的类型是 int。

关于auto和decltype的几个问题:
1. auto关键字能够根据初始化表达式自动推断变量类型。例如:
```cpp
auto i1 = 12; // i1 的类型是 int
int auto &i2 = i1; // 这里有个错误,auto不能用作类型修饰符
```
2. decltype关键字用于声明变量的类型。其推断规则如下:
- 如果参数是一个标识符,则推断结果与该标识符的类型一致。
- 如果参数是一个表达式,并且表达式的结果是将亡值(std::move),则推断结果为右值引用类型。
- 如果参数是一个表达式,并且表达式的结果是左值,则推断结果为左值引用类型。
- 其他情况与参数类型一致。例如:
```cpp
int lval = 0;
decltype(lval) v1 = 56; // v1 的类型是 int
decltype((lval)) v2 = v1; // v2 的类型是 int,因为(lval)表示一个左值
decltype(std::move(3 + 5)) v3 = 0; // v3 的类型是 int&&,因为std::move将表达式转换为右值
decltype(3 + 5) v4; // v4 的类型是 int
```
3. 对于auto和decltype结合使用的情况:
```cpp
auto v5 = 4; // v5 的类型是 int
auto &v6 = v5; // v6 的类型是 int&
```
4. 当使用const限定符时:
```cpp
const int v7 = 56;
auto &v8 = v7; // v8 的类型是 const int&
```
请注意,上述示例中的错误已经更正,例如auto不能用作类型修饰符,这是C++语言规则之一。此外,C++11的相关特性确实如描述所示,但实际应用时应考虑上下文和具体需求。上述内容仅供参考,实际使用时应以官方文档和标准为准。详情

文档

有关auto和decltype的几个问题求助

1.auto关键字能够根据初始化表达式自动推断变量类型。例如。```cpp;auto i1 = 12;// i1 的类型是 int。int auto &i2 = i1;// 这里有个错误,auto不能用作类型修饰符。```;2.decltype关键字用于声明变量的类型。其推断规则如下:- 如果参数是一个标识符,则推断结果与该标识符的类型一致。- 如果参数是一个表达式,并且表达式的结果是将亡值(std::move),则推断结果为右值引用类型。- 如果参数是一个表达式,并且表达式的结果是左值,则推断结果为左值引用类型。- 其他情况与参数类型一致。例如。```cpp;int lval = 0。decltype(lval) v1 = 56;// v1 的类型是 int。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top