ふむ・・・
STLでvoid *のコンテナだけ使うことにして、
それにtemplateで任意の型にキャストして使うとか、どうかなー。
やったことないけど。

template< class T >
class WrappedList
{
protected:
vector< void * > m_vec;
public:
void push_back( T *pItem ) { m_vec.push_back( (void * ) pItem ); }
・・・
};
とか。
イテレータとか使えなくなるのはイタイか。