Nick Sabalausky wrote: > ALL 3 types have an exact, FINITE size. > There *IS NO RECURSION* here.
This conclusion is wrong. Otherwise one can conclude that `s' is not recursing on itself in this code: struct S{ S* next;} S s; s.next= &s; ... because `s' has a fixed and finite size. One way to see the recursion in the problem given is to evaluate the exact types of the three entities starting with `(d_list!R).(node! R)'---yes, `node' is templated implicitely---and yes, not starting names of types with upper case might confuse the senses. Reaching `R' one might see, that `typeof( R)' must be equal to `typeof( int x &( R x &( (d_list!R).(node!R))^2)^2 )' where `T x U' is equÃvalent to put types `T' and `U' into a record, `&T' is an adress of some variabkle of type `T' and `T^2' is short hand for `T x T'. If there is no such `R' for which this equality holds, then recursion is not avoidable. Please guess what I believe. -manfred