void error_msg(ErrCode e, initializer_list<string> il)
{
cout << e.msg() << ":";
for (const auto &elem : il)
cout << elem << " ";
cout << endl;
}
initializer_list对象中的元素永远是常量值,但是为什么范围for循环中,elem的类型是const auto&类型?又不能修改initializer_list对象中的值,为什么要用&符号?