dynamic_pointer_cast
Conversion de au shared_ptr.
template <class Ty, class Other>
shared_ptr<Ty> dynamic_pointer_cast(const shared_ptr<Other>& sp);
Paramètres
Ty
Le type est contrôlé par le pointeur partagé retourné.Other
Le type est contrôlé par l'argument partagées du pointeur.sp
L'argument partagées du 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, classe<Ty> propriétaire de la ressource qui appartient à 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: <mémoire>
Espace de noms : std