【发布时间】:2023-03-17 04:14:01
【问题描述】:
我以前使用过 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;
}
错误:
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
^
我在两个编译器中都使用了 C++14。怎么了?
【问题讨论】:
-
问题中没有
main。请参阅How to Ask 并提供minimal reproducible example。 -
@Olaf 已编辑,只需复制并尝试运行即可。
-
回滚到以前的版本。如果该编辑删除了该答案的上下文,则一旦有了答案,您就不应编辑该问题。您可以附加一个解释,但如果明确标记为这样。
-
但答案毫无意义,因为它与问题无关。
-
@Olaf:我不同意。按照这个逻辑,如果有人回答有错字,任何有错字的问题都应该保留。
标签: c++ gcc struct initialization