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.
