C++11正确的结构初始化
C++11 Proper Structure Initialization
在C++11:中具有这样的结构
struct von
{
std::string Name;
unsigned int ID;
std::vector<std::string> Checks;
};
应该这样初始化吗:
von v = {"",0,{}};
或者像这样:
von v = {};
这两种方法似乎都有效,但编译器在后一个示例中警告-Wmissing-field-initializers
。
编辑:
以下是我的编译器选项:
g++ main.cpp -ansi -Wall -Wextra -Weffc++ -std=c++0x
我使用的是g++(Debian 4.6.2-12)4.6.2
这根本不需要initializer_list,并且可以很好地与C++03配合使用。编辑:(好的,对于向量的初始化,你需要C++11)在结构或数组初始化中,所有未明确给定的值都是零初始化的,所以如果这是你想要的={};会很好用的。
相关文章:
- 多成员Constexpr结构初始化
- 为什么用结构初始化数组需要指定结构名称
- 使用指定的初始值设定项聚合匿名结构初始化
- 不同的类或结构初始化方法之间的性能差异是什么?
- 如何在结构初始化中获取成员C++
- C++正确的结构初始化
- 使用大括号进行结构初始化
- 内部结构初始化不起作用 - C++
- 使用嵌套结构初始化并集
- 使用匿名结构初始化联合
- 结构初始化语法
- 结构初始化的 C++ 向量
- C++嵌套结构初始化和访问成员
- 结构初始化中的常量正确性
- 使用 C++ 中的自定义元素进行 Const 结构初始化
- 如何在结构C++初始化内置数组
- Visual C++ 模板类成员结构初始化语法糖
- C++结构初始化
- C 在结构初始化过程中带有内部阵列的奇怪错误
- 此C/C 的结构初始化器如何使用足够的字段工作