Hi all,

I am trying to construct a tree data structure composed of differently (statically) typed nodes. The basic case is a binary tree. So you have a node like:

```
struct Node(T)
{
  T value;
  Node* next;
  Node* prev;
}

void main()
{
  auto x = Node!(int)(2);
  auto y = Node!(double)(3.2);
  x.next = &y; //gives error
}
```
Error: cannot implicitly convert expression & y of type Node!double* to Node!int*

So implicity Node!(T) will produce an object with prev, and next type Node!(T)*. But once I give them different types:

```
struct Node(T, P, N)
{
  T value;
  Node!(P...)* prev;
  Node!(N...)* next;
}
```

I can no longer specify the types at all, they become circularly referenced. Would appreciate the solution to this.

Many thanks.

Reply via email to