统一初始化,能否有隐式类型转换的操作

C++语言 码拜 9年前 (2016-04-18) 737次浏览
假如auto buf={1,2,3},那么buf的类型就是initializer_list
问题:int buf[]={1,2,3};
等号左边是一个变量声明,类型是int[],右边是一个initializer_list
那么这里面能否包含了一个std::initializer_list到int[]的隐式转换? 还是新的STL里面定义了这个转换?
怎么样能证明有或没有这个转换?
解决方案

20

不是STL,是STD C++

20

首先,不能证明,原因是测不准原理
其次,int buf[]={1,2,3}; 这是 C 数组的初始化表初始化方式,可谓从来就有的,一直还在
再次,auto buf[]={1,2,3};这里只是根据 初始化表的类型,自动给 buf 确定一个类型。
C++11只是扩大了初始化表的用法,
并给初始化表定义了,一个类型模板
从而,使得初始化表,更好用,更有用了,更明确了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明统一初始化,能否有隐式类型转换的操作
喜欢 (0)
[1034331897@qq.com]
分享 (0)