www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Recursive Templates

I'm working on a set library that uses templates. The library centers around a
class named Set. This class contains an array named elems that stores the set's
elements. The definition for set is as follows:

     class Set (T) { ... T[] elems; ... }

To calculate the cartesian product of two sets, I need to be able to represent
higher order sets. I tried defining a function with the following signiture:

     static Set! (Set! (T)) product (Set! (T) a, Set! (T) b);

Unfortunately, the dmd compiler throws an error stating that It does no allow
recursive elements.

Does anyone know how to work around this problem?
Aug 09 2008