On Friday 23 June 2006 07:42, Frans Englich wrote: > Yes, some features should be avoided > in any case like dynamic_cast, but perhaps there's some template > features or the like that should be avoided. Just out of curiosity, why is dynamic_cast<> a Bad Thing(TM) ? I think dynamic_cast<> is your friend. It comes with failure guarantee which returns NULL for pointers (a Good Thing(TM)). It throws for references but then i've rarely seen it used on references anyway. The legend that dynamic_cast<> is slow is really an Urban Myth these days. For any half-decent compiler dynamic_cast<> is nothing more than a simple pointer arithmetic in the __vtbl, unless the class inheritance tree is a really weird-shaped directed acyclic graph with several branches and the C++ run-time has to go through several __vtbl jumps to resolve to the proper type. --Stefan -- Stefan Teleman 'Nobody Expects the Spanish Inquisition' steleman@nyc.rr.com -Monty Python