错误 C2536 的解决方法:无法为 Visual Studio 2013 中的数组指定显式初始值设定项
Workaround for error C2536: cannot specify explicit initializer for arrays in Visual Studio 2013
以下代码不能使用 Visual Studio 2013 编译,而它应该:
class A
{
A() :m_array{ 0, 1, 2 } {} // error C2536: 'A::A::m_array' : cannot specify explicit initializer for arrays
private:
int m_array[3];
};
有关更多详细信息,请参阅错误报告。
有哪些可能的解决方法?
作为注释,您可以尝试此解决方法。
class A
{
A() : m_array ({ 0, 1, 2 }) {}
private:
std::array<int, 3> m_array;
};
似乎VS2013为构造函数制作了std::array
初始化程序列表,您可以在构造函数的初始化器中初始化它。您编写的代码是有效的,gcc 和 clang 都支持它。VS2013缺乏。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '