C++ auto decltype 初始化变量类型

C++中的两种有趣的类型,让编译器自己去分析我们所需要的数据类型,这两者有有些区别:
auto 定义的变量必须具有初值

// 由val1和val2相加的结果可以推断出item的类型
auto item = val1 + val2;  // 初始化为val1和val2相加的结果

但是,注意以下两条:

auto i = 0, *p = &i;   // 正确:i是整数,p是整型指针
auto sz = 0, pi = 3.14;  // 错误,sz和pi的类型不一致

具体的,Primer61页之后有,稍微看下就好了,关于类型都是个麻烦的东西。

decltype有些类似,但只得到类型,不实际计算表达式的值

decltype(f()) sum = x; // sum的类型就是函数f的返回类型

decltype((variable))结果永远是引用,而decltype(variable)只有当variable本身是一个引用才是引用,如果是引用,必须要初始化,否则则不必。

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 知识, 语法

添加新评论