Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Dynamic cast to shared_ptr.
template <class Ty, class Other>
shared_ptr<Ty> dynamic_pointer_cast(const shared_ptr<Other>& sp);
Parameters
Ty
The type controlled by the returned shared pointer.Other
The type controlled by the argument shared pointer.Other
The argument shared pointer.
Remarks
The template function returns an empty shared_ptr object if dynamic_cast<Ty*>(sp.get()) returns a null pointer; otherwise it returns a shared_ptr Class<Ty> object that owns the resource that is owned by sp. The expression dynamic_cast<Ty*>(sp.get()) must be valid.
Example
// 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::tr1::shared_ptr<base> sp0(new derived);
std::tr1::shared_ptr<derived> sp1 =
std::tr1::dynamic_pointer_cast<derived>(sp0);
sp0->val = 3;
std::cout << "sp1->val == " << sp1->val << std::endl;
return (0);
}
sp1->val == 3
Requirements
Header: <memory>
Namespace: std::tr1