1. 背景
使用vs2019编辑c++的项目,初始化结构体的时候看到有的代码能够指定初始化结构体,觉得非常方便和美观。但是自己试了一下却报错,经过设置后也是支持的,特意写下来。
2. 结构体初始化方式
2.1 指定结构体初始化
1) .属性名 = 值,例如: struct DemoStruct ds = { .a = 1, .b = 2 }
还有一种冒号的,没试过就不写了。
2.2 顺序初始化
struct DemoStruct ds = {1,2} ,缺点不能改变顺序,而且参数较多的时候不直观。
2.2 构造器初始化
struct DemoStruct {
DemoStruct(int a, int b)
} ;
3. 设置vs2019支持2.1中初始化方式
版本要求: >= vs2019 16.1
我的版本为:vs2019 版本为16.10.3
设置步骤如下:
1) 项目
2) 属性
3)C/C++
4) 语言
5)C++语言标准 选 预览项 最新功能, 如下图:
4.效果
5. 总结
1)需要努力更新内容,保持最新状态。
CSDN上很多文章说是不支持,去谷歌上看了一下,最新的是支持的。看来文章确实需要不断的更新,也需要一起努力。
2)找到官方资料了解。这次解决也是6中的资料问答中获取到的。共勉!!!
6. 资料
https://developercommunity.visualstudio.com/t/c-designated-initializers/518768