可以在使用new动态分配内存时使用列表初始化。
  vector<int> *pv = new vector<int>{0, 1, 2, 3, 4};
  int *pi = new int[5]{0, 1, 2, 3, 4};
  cout<<"test new alloator using list initialization: "<<(*pv)[2]<<' '<<pi[2]<<endl;
  可以在传入参数/函数返回值时使用列表初始化。
m1.insert({"d", "D"});
vector<string> error_msg(int typ)
{
switch(typ)
{
case 1:
return {"type1", "msg1"};
case 2:
return {"type2", "msg2"};
default:
return {};
}
}
pair<string, string> get_pair(int typ)
{
if(typ == 1) return {"key", "value"};
return pair<string, string>("default key", "default value");
}
vector<string> err_msg1 = error_msg(1);
vector<string> err_msg2 = error_msg(2);
vector<string> err_msg3 = error_msg(3);
cout<<"test return value list initialization: "<<err_msg1[1]<<' '<<err_msg2[1]<<' '<<err_msg3.empty()<<endl;
pair<string, string> p1 = get_pair(1);
pair<string, string> p2 = get_pair(2);
cout<<"test return pair list initialization: "<<p1.first<<' '<<p2.first<<endl;
  类内成员初始化
  C++11标准中允许直接对类内成员进行初始化/列表初始化。
class InitClass
{
public:
void print_class()
{
cout<<field1<<' '<<field2<<' '<<field3<<' '<<field4<<endl;
}
private:
int field1 = 1;
int field2;
double field3 = 1.0;
double field4;
};
class InitClassMgr
{
public:
vector<InitClass> init_objs = {InitClass()};
};
InitClass test_class;
cout<<"test class member initialization: ";
test_class.print_class();
InitClassMgr mgr;
cout<<"test class member of class type initialization: ";
mgr.init_objs[0].print_class();
  总结
  1、long long类型。
  2、nullptr字面量用于表示空指针。
  3、constexpr用于表示常量表达式。
  4、noexcept可以用于指示一个函数是否会抛出异常,同时可以用作运算符判定一个函数是否承诺不抛出异常。
  5、新增基础类型、容器类型、new分配内存时的列表初始化。构建临时变量时也可以直接使用列表初始化。
  6、可以直接对类内成员进行初始化/列表初始化。