【发布时间】:2016-01-26 18:27:09
【问题描述】:
我在以下return 行收到Excess elements in struct initializer:
using triangleColor = std::array<std::array<float, 4>, 3>;
triangleColor colorBlend(TriangleColorBlend c){
switch (c) {
case TriangleColorBlend::white:
return {{1.0,1.0,1.0,1.0},{0.7,0.7,0.7,1.0},{0.5,0.5,0.5,1.0}};
break;
... // other cases
}
}
我希望花括号文字能够以嵌套方式工作,因为如果我只使用一个 std::array 而不是嵌套的,它就可以正常工作。
以上是不可能的,为什么不呢?
注意,建议的副本并没有真正解决嵌套情况下 std::array 的奇怪行为。
【问题讨论】:
-
请将有关此问题的适当性的任何讨论提交给the meta question,但 OP 是正确的:询问如何做某事的问题不一定需要 MCVE 才能保持打开状态。我会在meta中说更多。 Shog9talked about this in this meta post.
-
@GeorgeStocker 现已撤回。你是对的,我之前一直在争论这个问题,但事实证明是错误的。