On Thursday, 8 November 2012 at 21:15:17 UTC, Manfred Nowak wrote:
Rob T wrote:
In fact, I can define the structure just fine provided that I
do not use a template.
.. and if one uses a template one can get an infinite recursion,
because templates include recursion. This is the case in your
code.
The code I gave elimates that infinite recursion. The code
compiles
although it uses a template.
Not seeing e recursion does not mean that there is none. Not
every
recursion is as simple to see as:
| alias X Y;
| alias Y X;
-manfred
I think I'm starting to understand what you are doing, however
we're operating on two separate planes of existence.
What you are describing, is a different structure than what I
want. The template creates two separate struct types for R, one
with a list and one without (R1 & R2), but I want only one type
R, otherwise it will introduce a ton of complications in the form
of me having to make just about eveything that uses these two
different structures a template and/or duplicated overloaded
functions.
Perhaps I just don't understand the in's and out's of D
templates, but it's just not doing what I want.
So is there a way to retain identical struct types for R by
disabling the not-so-useful-in-my-case template recursion?
--rt