首页 > C++11标准中关于auto与decltype的具体区别

C++11标准中关于auto与decltype的具体区别

C++11标准中关于auto与decltype的具体区别?

另附:支持C++11新标准的编译器有哪些?


C++11标准中关于auto与decltype的具体区别?

auto

通过变量的初始值来推断变量的类型

decltype

用于从表达式的类型推断出要定义的变量的类型

std::string func() {
    return "hello";
}
int main() {
    decltype(func()) s;
    s = "hh";
}

注意:decltype()括号中的表达式并不去执行

当然也可以

int i = 5;
decltype(i) a = 9;

另外,decltype((variable))的结果永远是引用;
decltype(variable)结果只有当variable本身是一个引用是才是引用

支持C++11新标准的编译器有哪些?

目前支持全部c++11特性的编译器还没有,但是大部分编译器已经对c++11的支持基本足够了,每个新版本都会对c++11特性进行新的支持,所以编译器用最新的基本不会有问题了

具体的支持情况见下面的链接主流编译器支持情况

【热门文章】
【热门文章】