2.7 auto类型说明符、decltype类型指示符

//略过constexpr和常量表达式以及类型别名的内容,细碎的东西无从理解,无法记忆,用到时候再说
 
auto类型说明符——用于让编译器通过所赋初始值来推断变量类型。所以auto定义的变量必须有初始值!
 
auto类型一般会忽略顶层const,保留底层const。(这句话我看了几十遍也不甚懂,只感觉auto对常量对象可有可无,对常量指针也可有可无。。。貌似是废话  (o´ω`o))
 
decltype类型指示符——希望用某表达式的类型来定义(原文此处是推断,无法理解,笔者改为定义)某变量的类型,同时不想用该表达式的值初始化变量。
例:       decltype(f()) sum = x;
编译器并不会实际调用函数f,而是使用当调用 f 发生时其返回值类型作为 sum 类型。
 
非常有趣的是:decltype((variable))的结果永远是引用(即双括号的地方),而decltype((variable))的结果只有当variable本身就是引用的时候才是引用。(笔者也不懂为什么,双括号竟有如此作用)

猜你喜欢

转载自www.cnblogs.com/NK-007/p/9152897.html
2.7