在旧的 c++ (<c++11) 中,初始化结构会出错
In old c++ (<c++11), initializing struct gets errors
struct Material {
glm::vec3 ambient;
glm::vec3 diffuse;
glm::vec3 specular;
float shininess;
};
Material emerald{ { 0.0215f, 0.1745f, 0.0215f },{ 0.07568f, 0.61424f, 0.07568f },{ 0.633f, 0.727811f, 0.633f },0.6f };
这在C 11中的工作非常好,但是我不知道如何在C 中解决此问题。C 11。我迁移到VS2010是有原因的,需要解决这些错误。
我遇到的错误是:
looks like a function definition, but there is no formal parameter list; skipping apparent body
预先感谢您。
glm::vec3
(是类的typedef
)具有一个接受三个参数的构造函数,因此(在C 11之前)您不能为struct使用统一或汇总初始化。
做您想做的事,更改
Material emerald{ { 0.0215f, 0.1745f, 0.0215f },{ 0.07568f, 0.61424f, 0.07568f },{ 0.633f, 0.727811f, 0.633f },0.6f };
to
Material emerald = { glm::vec3(0.0215f, 0.1745f, 0.0215f),
glm::vec3(0.07568f, 0.61424f, 0.07568f),
glm::vec3(0.633f, 0.727811f, 0.633f),
0.6f };
相关文章:
- 在C和C++中初始化结构中的数组
- 我们可以用参数化构造函数初始化结构的数组吗?
- 尝试初始化结构内的联合时出错
- 使用其他成员初始化结构的成员?
- 使用构造函数初始化结构还是在之后设置其值更好?
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 如何在另一个结构中初始化结构数组?
- 如何在构造函数中初始化结构体的动态数组?
- 初始化结构中的联合 - c++
- 尝试初始化结构向量时出现编译错误
- 用于初始化结构的 void 指针强制转换
- 初始化结构的两种方式
- 使用用户定义的构造函数初始化C++结构
- 使用初始值设定项列表初始化结构,对于 std::array 失败
- 在 c++ 中初始化结构的指针
- 无序列图会创建一个零初始化结构吗?
- 如何在C++中初始化结构
- C 用结构指针初始化结构
- 在C 中初始化结构数组
- 使用数组聚合初始化结构数组