dynamic_pointer_cast Function
cast dynamique au shared_ptr.
template <class Ty, class Other>
shared_ptr<Ty> dynamic_pointer_cast(const shared_ptr<Other>& sp);
Paramètres
Ty
le type contrôlé par le pointeur partagé retourné.Other
Le type contrôlé par l'argument est partagé le pointeur.sp
L'argument est partagé le pointeur.
Notes
La fonction de modèle retourne un objet vide de shared_ptr si dynamic_cast<Ty*>(sp.get()) retourne un pointeur null ; sinon retourne un objet de shared_ptr Class<Ty> qui possède la ressource qui est possédée par sp.l'expression dynamic_cast<Ty*>(sp.get()) doit être valide.
Exemple
// std_tr1__memory__dynamic_pointer_cast.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
struct base
{
virtual ~base()
{
}
int val;
};
struct derived
: public base
{
};
int main()
{
std::shared_ptr<base> sp0(new derived);
std::shared_ptr<derived> sp1 =
std::dynamic_pointer_cast<derived>(sp0);
sp0->val = 3;
std::cout << "sp1->val == " << sp1->val << std::endl;
return (0);
}
Configuration requise
en-tête : <memory>
l'espace de noms : type