错误 C2536 的解决方法:无法为 Visual Studio 2013 中的数组指定显式初始值设定项

Workaround for error C2536: cannot specify explicit initializer for arrays in Visual Studio 2013

本文关键字:数组 2013 方法 解决 C2536 Studio Visual 错误      更新时间:2023-10-16

以下代码不能使用 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缺乏。