On 2013-02-11 23:20, Era Scarecrow wrote:

  What if there's another anonymous struct that has a little more?

   { int x, int y } point = { y: 4, x: 5 };
   { int x, int y, int color } color_point
           = { y: 4, x: 5, color: 0x000000 };
   //which anonymous struct does it go with?
   //Or can auto only work with named/returned structs?
   auto point2 = { x: 1, y: 2 };

   point = point2; //error, point2 type void _error

"point2" is completely independent of the other declarations. But you can think of it having the same type as "point". It can also be implicitly converted to "color_point". It's not the actual type that's interesting, it's the members. The compiler checks the members to see if two values are of the same types.

  We can instantiate structs with fewer arguments than elements they
hold. It would either have to go the safe route, or try it's best to
either be 'safe' or 'whatever seems to work' until you change something
and break it utterly with no description of 'what' it is.

It's not the actual type that's interesting, as long as the members match they're considered to be the same type.

--
/Jacob Carlborg

Reply via email to