Recursive data structure using template won't compile
Rob T
rob at ucora.com
Thu Nov 8 09:49:04 PST 2012
On Thursday, 8 November 2012 at 15:19:56 UTC, Dmitry Olshansky
wrote:
>
> Naturally C++ doesn't have nested struct definitions.
>
I don't have a nested struct, the struct definition defines the
type only, and the nodes are allocated as pointers from a new
operation when the list is composed. The node struct has a member
var that may or may not be a struct type, it does not matter, and
C++ will allow a member data type to be a struct just fine.
>> I also want to template the recursive structure itself to
>> specify the
>> value type, ie struct R(T){ T value; d_list!R Rlist; }, but I
>> left that
>> out to keep the example more simple.
>>
>
>> I've been stuck on this problem all day, so any help is
>> appreciated!
>
> See if it helps.
I tried moving the node struct outside the d_list struct, but no
luck, and I think it should not matter anyway since I can get it
to work in that way without a template.
The solution so far is to do it the C++ way, using pointers,
which sucks.
I think in this case the D template should work just fine, and
the problem is either a bug or a design flaw with how templates
are evaluated.
I'll wait a bit longer for more comments before filing a bug
report.
--rt
More information about the Digitalmars-d-learn
mailing list