到目前为止,我已经找到以下使用列表初始化(也称为统一初始化)的用途。
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) 它解决了最令人烦恼的解析问题
如果您告诉我列表初始化的其他优点,那就更好了。除了上述三个优点之外,列表初始化还有哪些优点吗?
非常感谢您的回答。