static_pointer_cast
Conversión estática a shared_ptr.
template <class Ty, class Other>
shared_ptr<Ty> static_pointer_cast(const shared_ptr<Other>& sp);
Parámetros
Ty
El tipo controla el puntero compartido devuelto.Other
El tipo controla el argumento compartan el puntero.Other
El argumento compartan el puntero.
Comentarios
La función de la plantilla devuelve un objeto vacío shared_ptr si sp es un objeto vacío de shared_ptr ; si no devuelve un objeto de shared_ptr (Clase)<Ty> que posee el recurso que es propiedad de sp. La expresión static_cast<Ty*>(sp.get()) debe ser válida.
Ejemplo
// std_tr1__memory__static_pointer_cast.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
struct base
{
int val;
};
struct derived
: public base
{
};
int main()
{
std::shared_ptr<base> sp0(new derived);
std::shared_ptr<derived> sp1 =
std::static_pointer_cast<derived>(sp0);
sp0->val = 3;
std::cout << "sp1->val == " << sp1->val << std::endl;
return (0);
}
Requisitos
Encabezado: <memory>
Espacio de nombres: std