Hello, I want to write a template class X with the following properties: (a) For any class A X<A> exists (and is very similar to A*) (b) If A is derived from B and X<A> v; X<B> u; then u=v; is allowed but v=u is forbidden without explicit casting. I cannot use the usual c++-pointers. Does anybody have an idea how to realize this? Thanks in advance, Holger snoo@uni-paderborn.de