shared_ptr cast
-
Warum ist der dynamic/static_cast für shared_ptr nicht überladbar gemacht worden?
-
Wie "überladbar gemacht"? dynamic_cast operiert halt auf Zeigern, nicht smarten Zeigern. Wenn man das für shared_ptr anbieten würde, müsste das auch mit all den anderen smart-pointern gehen.
Man hat ja übrigens shared_ptr::get, was den Pointer zurück liefert, auf dem man dann dynamic_casten kann.
Ein dynamic_cast, der wieder einen shared_ptr liefert, KANN es nicht geben, da shared_ptr<base> und shared_ptr<derived> unterschiedliche Typen sind, die beide eigene Zähler haben.
-
Es gibt dynamic_pointer_cast und static_pointer_cast, die tun genau das.
-
Was spricht dagegen dynamic_cast genauso überladbar zu machen wie z.B. Zuweisungsoperatoren? Warum braucht man da neue ...pointer_cast-Methoden?
-
dynamic_cast gehört verboten und nix anderes
-
314159265 schrieb:
dynamic_cast gehört verboten und nix anderes
Soso...