Anonymous structure
ZombineDev via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Apr 19 13:19:37 PDT 2016
On Tuesday, 19 April 2016 at 20:18:07 UTC, ZombineDev wrote:
> 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
> }
Also functions defined in _b can access members of A.
More information about the Digitalmars-d-learn
mailing list