std.container.array: Error: unable to determine fields of Test because of forward references

user1234 user1234 at 12.de
Thu Oct 31 12:37:55 UTC 2019


On Thursday, 31 October 2019 at 12:29:28 UTC, Tobias Pankrath 
wrote:
> My Problem:
>
> --- (https://run.dlang.io/is/CfLscj)
> import std.container.array;
> import std.traits;
>
> struct Test
> {
>    Test[] t;
> }
>
> struct Test2
> {
>    Array!Test2 t;
> }
>
> int main()
> {
> 	return FieldTypeTuple!Test.length + FieldTypeTuple!Test2;
> }
> ---
>
> I've found https://issues.dlang.org/show_bug.cgi?id=19407 but I 
> am not using separate compilation, just `dmd test.d`.
>
> I want to have a tree structure like
>
> ---
> struct S
> {
>     S[] children;
> }
> ---
>
> but I do not want to rely on the GC and thus wanted to use a 
> custom array type. What's the best way to do this?

Try

struct S
{
      S*[] children;
}

because otherwise when you declare the array the compiler has not 
finished the semantic ana of S.


More information about the Digitalmars-d-learn mailing list