比较关注一致性初始化是否可以像传统的数组初始化那样可以使用变量作为初始化列表的成员:
int val = 10;
int va[] = {1,2,3,val};
编写简单代码验证发现是可以的:
#include <iostream>
int main()
{
int val = 10;
int va[]{1,2,3,val};
for(auto i:va)
std::cout<<i<<std::endl;
return 0;
}
打印出来是:
这里如果使用string 变量是不可以的,不能转化。但是char这种可以转化的是可以的,比如:
#include <iostream>
int main()
{
int val = 10;
char str = 'b';
int va[]{1,2,3,val, str};
for(auto i:va)
std::cout<<i<<std::endl;
return 0;
}
打印出来是:
这种初始化方式可以增加代码简洁度。