鱼C论坛

 找回密码
 立即注册
查看: 1372|回复: 2

decltype问题

[复制链接]
发表于 2014-11-4 23:27:59 | 显示全部楼层 |阅读模式
3鱼币
本帖最后由 avatar10010 于 2014-11-4 23:29 编辑
#include <vector>
#include <iostream>
using namespace std;
int main()
{
        vector<int> v{ 1 };
        decltype(v[0]) var = v[0];            // b为int&型別

        int c = 1;                                
        decltype((c)) a = c;                      // a为int&型別
        decltype(c) b = c;                        // b为int型别
}
问一下decltype什么时候返回引用,什么时候不返回引用
百度解释如下:
decltype类似于sizeof操作符,也不需对其操作数求值。粗略来说,decltype(e)返回类型前,进行了如下推导:
若表达式e指向一个局部变量、命名空间作用域变量、静态成员变量或函数参数,那么返回类型即为该变量(或参数)的“声明类型”;
若e是一个左值(lvalue,即“可寻址值”),则decltype(e)将返回T&,其中T为e的类型;
若e是一个x值(xvalue),则返回值为T&&;
若e是一个纯右值(prvalue),则返回值为T。


但还是看不懂啊,希望大家帮我解释一下,!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-14 19:44:16 | 显示全部楼层
你都用了两个()了都。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-12-2 20:07:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 11:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表