On Tuesday, 21 June 2016 at 19:15:56 UTC, Paul wrote:
Given these structures and declaration:
struct CoordList{
int x, y;
}
struct Part{
int x, y;
CoordList[] coords;
int nextNode, prevNode;
string nextEnter, prevEnter;
}
Part[10] trackTemplates;
Can someone please tell me why I can't initialise
Part[0].coords like this:
trackTemplates[0].coords = [ {0, 9}, {1, 1}, {3, 6} ];
but I can do this:
CoordList[] temp = [ {0, 9}, {1, 1}, {3, 6} ];
trackTemplates[0].coords = temp;
Many thanks!
My take is that “CoordList[] temp = [{0, 9}, {1, 1}, {3, 6}];” is
initialization because you're setting the value when defining it
but “trackTemplates[0].coords = [{0, 9}, {1, 1}, {3, 6}];” is an
assignment so the compiler can infer as much and doesn't
understand that each of those list of values are really
CoordLists. For example “ trackTemplates[0].coords =
[CoordList(0, 9), CoordList(1, 1), CoordList(3, 6)];” would have
worked as expected.