到目前为止,我发现了列表初始化(又名统一初始化)的以下用途。
1)介绍之前是列表初始化功能
int a=3.3f; // ouch fractional part is automatically truncated
但是在 C++11 中
int a{3.3f}; // compiler error no implicit narrowing conversion allowed
2)动态数组元素可以静态初始化。例如,该程序在 C++03 中无效,但自 C++11 起有效:
#include <iostream>
int main()
{
int* p=new int[3]{3,4,5};
for(int i=0;i<3;i++)
std::cout<<p[i]<<' ';
delete[] p;
}
3)它解决了最棘手的解析问题
如果您告诉我列表初始化的其他优点会更好。除了上述3之外,列表初始化还有什么优势吗?
非常感谢您的回答。