How to declare a parameterized recursive data structure?

Gary Willoughby via Digitalmars-d digitalmars-d at puremagic.com
Sat Aug 16 10:55:27 PDT 2014


On Friday, 15 August 2014 at 18:37:52 UTC, artemav wrote:
> I'm getting an error when trying to compile (DMD64 D Compiler 
> v2.066) this:
>
> struct node(T) {
>     T data;
>     node!T next;
> };
>
> void main() {
>     node!int n;
> }
>
> output:
> test.d(3): Error: struct test.node!int.node cannot have field 
> next with same struct type
> test.d(9): Error: template instance test.node!int error 
> instantiating
> ...
>
> It is so simple code that the error "... cannot have field next 
> with same struct type" looks funny and sad at the same time. Is 
> it a bug or are there some constraints why it cannot be 
> compiled?

Funnily enough i've been toying with linked lists using the same 
kind of nodes here:
https://github.com/nomad-software/etcetera/blob/master/source/etcetera/collection/linkedlist.d

Might be of use to you?


More information about the Digitalmars-d mailing list