【发布时间】:2016-01-30 14:34:55
【问题描述】:
首先,我见过this question。
我很好奇为什么以下方法不起作用:
float vcolor[4]{color.getX(),color.getY(),color.getZ(),1.0f};
float v1[3]{from.getX(),from.getY(),from.getZ()};
float v2[3]{to.getX(),to.getY(),to.getZ()};
std::vector<Vertex> v={{v1,vcolor},{v2,vcolor}};
没有匹配的构造函数用于初始化 'std::vector'
但是直接传递元素可以正常工作(如另一个问题中所述):
std::vector<Vertex> v={
{{from.getX(),from.getY(),from.getZ()},
{color.getX(),color.getY(),color.getZ(),1.0f}},
{{to.getX(),to.getY(),to.getZ()},
{color.getX(),color.getY(),color.getZ(),1.0f}}};
不应该是前者也可以吗?
【问题讨论】:
-
{v1,vcolor},{v2,vcolor}没有形成初始化列表。 -
@Lingxi 谢谢但是.. 它们在另一对大括号内,这将是一个初始化列表,不是吗?
-
刚刚看了
Vertex的定义。问题是你不能复制初始化数组。
标签: c++