Visual Studio 报告结构向量上的 push_back() 函数调用错误

Visual Studio Reporting an error with a push_back() function call on a vector of structs

所以在程序中有一个看起来像这样的结构:

struct VERTEX 
{
    FLOAT X, Y, Z; 
    D3DXVECTOR3 Normal;
};

并且在程序头文件中有一个存储容器(一个向量)来存储顶点结构:

std::vector<VERTEX> cubeVerts;

并且在程序中有一个用结构填充结构向量的函数:

cubeVerts.push_back({-1.0f, -1.0f, 1.0f, D3DXVECTOR3(0.0f, 0.0f, 1.0f)});    // side 1
cubeVerts.push_back({1.0f, -1.0f, 1.0f, D3DXVECTOR3(0.0f, 0.0f, 1.0f)});
cubeVerts.push_back({-1.0f, 1.0f, 1.0f, D3DXVECTOR3(0.0f, 0.0f, 1.0f)});
cubeVerts.push_back({1.0f, 1.0f, 1.0f, D3DXVECTOR3(0.0f, 0.0f, 1.0f)});

然而 visual studio 正在报告错误,用红色下划线突出显示 push_back() 函数的每个调用的第一个大括号,并在突出显示时报告:错误:需要一个表达式。我只是想知道报告错误的原因是因为我没有将数据类型转换为 VERTEX 结构,还是在函数调用中将数据类型转换为 D3DXVECTOR3 在某种程度上是非法的?

Visual Studio C++ 2010 不支持使用初始化列表作为标准容器构造函数的参数。您应该使用更现代的 Visual Studio 版本。