decltype问题
本帖最后由 avatar10010 于 2014-11-4 23:29 编辑#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> v{ 1 };
decltype(v) var = v; // 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。
但还是看不懂啊,希望大家帮我解释一下,!!
你都用了两个()了都。
页:
[1]