我们观察下面代码:
int main()
{
auto il = { 10, 20, 30 };
cout << typeid(il).name() << endl; 输出结果:the type of il is an initializer_list
return 0;
}
struct Point
{
//explicit Point(int x, int y)//调用后,可不让其隐式类型转换
Point(int x, int y)
:_x(x)
,_y(y)
{
cout << "Point(int x, int y)" << endl;
}
int _x;
int _y;
};
int main()
{ // 不同的规则
vector<int> v1 = { 1,2,3,4,3}; // 调用initializer_list的vector构造函数
Point p1 = { 1,1}; // 直接调用两个参数的构造 -- 隐式类型转换
return 0;
}