Anonymous structure

ZombineDev via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Apr 19 13:18:07 PDT 2016


On Tuesday, 19 April 2016 at 17:16:00 UTC, Tofu Ninja wrote:
> On Tuesday, 19 April 2016 at 16:16:39 UTC, ZombineDev wrote:
>> On Monday, 18 April 2016 at 23:00:42 UTC, captaindet wrote:
>>> On 2016-04-18 14:12, Tofu Ninja wrote:
>>>> Also is there a way to have a named substructure, not a 
>>>> nested structure
>>>> but something to just add an additional name, maybe 
>>>> something like
>>>> struct a{
>>>>      struct{
>>>>          int x;
>>>>          int y;
>>>>          int z;
>>>>      } b;
>>>> }
>>>
>>> not sure what you mean by "named substructure, not a nested 
>>> structure" but this works:
>>>
>>> struct Outer{
>>> 	struct Inner{
>>> 		int x;
>>> 		int y;
>>> 		int z;
>>> 	}
>>> 	Inner inner;
>>> 	int a;
>>> }
>>>
>>> Outer outer;
>>> outer.a = 7;
>>> outer.inner.y = 42;
>>> //  outer.x = 13; //fails
>>>
>>> writeln(outer);
>>
>> There's another way:
>> http://forum.dlang.org/post/n3q9vn$1l8g$1@digitalmars.com
>
> How is that supposed to work here?

struct A
{
     template _b()
     {
         int x, y, z;
     }	
     alias b = _b!();	
}

void main()
{
     import std.stdio;
	
     auto a = A();
     a.b.x = 5;

     writeln(a.b.x); // prints 5
     //writeln(a.b); // Error: expression has no value
}


More information about the Digitalmars-d-learn mailing list