Basisklasse mit typeinfo feststellen
-
Hi,
Ich bräuchte ein Möglichkeit festzustellen ob 2 typen miteinander ein "verwandtschaftliches" Verhältnis haben.
Ziel ist es eine SmartPointer klasse so zu schleifen dass sie auch sowas zu lässt:
class A {...}; class B : public A [...} ... SmartPtr<B> pb = new B(); SmartPtr<A> pa = pb;Ich muss also prüfen ob der Type rechts vom "=" bzw im copy Constructor ein abgeleiteter Type ist und entscheiden ob die Sache legal ist oder nicht.
Gibt es da vorgefertigte Werkzeuge oder muss ich beim erstellen der Typeinfo selbst Hand anlegen?
Horrido, Wh0p.
-
template <typename T> class SmartPtr { ... public: ... template <class U> SmartPtr(const SmartPtr<U>& p) ... };
-
Das ist mir auch klar.
Ich dachte eben, dass ich vielleicht sicherstellen sollte ob die operation auch wirklich legal ist.
Oder braucht es mich nicht zu kümmern, wenn U unt T was völlig unterschiedliches ist?
-
Wh0p schrieb:
Ich dachte eben, dass ich vielleicht sicherstellen sollte ob die operation auch wirklich legal ist.
Darum kümmert sich doch schon der Compiler!?
-