#include <cstdio>
#include <iostream>
#include <tuple>
#include <vector>
#include <complex>
using namespace std;
void print(initializer_list<int> list)
{
for (auto p = list.begin(); p != list.end(); ++p) {
cout << *p << endl;
}
}
class P
{
public:
P(int a, int b)
{
cout << a << " " << b << endl;
}
P(initializer_list<int> list)
{
cout << "initializer_list : ";
for (auto p : list) {
cout << p << " ";
}
cout << endl;
}
};
int main()
{
cout << __cplusplus << endl;
// 初始化,编译器只要看到{}就会做出一个initializer_list<T>
// 他内部关联到一个array<T,n>
int values[]{ 1,2,3 };
vector<int> v{ 1,2,3,54,66,55 };
complex<double> c{ 4.0,3.0 };
//int a{ 5.5 };// error narrowing
//cout << a;
print(/*initializer_list<int> */{ 1,2,11 });
P p1(1, 2);
P p2{ 1,2 };
P p3{ 1,2,3,40 };
P p4 = { 55,66 };
/*
1 2
initializer_list : 1 2
initializer_list : 1 2 3 40
initializer_list : 55 66
*/
system("pause");
return 0;
}