小编Gam*_*dio的帖子

无法将{...}从<brace-enclosed initializer list>转换为struct

我之前使用过TDM-GCC-5.10,现在切换回4.9 MINGW-GCC并尝试使用列表初始化时遇到奇怪的错误:

class Vector2
{
public:
    Vector2(float x, float y)
    {
        this->x = x;
        this->y = y;
    }
    float x = 0.f;
    float y = 0.f;
};

struct Test
{
    int x = 0;
    Vector2 v;
};

int main()
{    
    Test tst = {0,Vector2(0.0f,0.0f)}; //Error
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

main.cpp: In function 'int main()':
main.cpp:21:41: error: could not convert '{0, Vector2(0.0f, 0.0f)}' from '<brace-enclosed initializer list>' to 'Test'
         Test tst = {0,Vector2(0.0f,0.0f)}; //Error
                                         ^
Run Code Online (Sandbox Code Playgroud)

我在两个编译器中都使用了C++ 14.怎么了?

c++ gcc struct initialization

15
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

gcc ×1

initialization ×1

struct ×1