Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All


Static cast to shared_ptr.

template <class Ty, class Other>
    shared_ptr<Ty> static_pointer_cast(const shared_ptr<Other>& sp);


The type controlled by the returned shared pointer.


The type controlled by the argument shared pointer.


The argument shared pointer.

The template function returns an empty shared_ptr object if sp is an empty shared_ptr object; otherwise it returns a shared_ptr Class<Ty> object that owns the resource that is owned by sp. The expression static_cast<Ty*>(sp.get()) must be valid.


// 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 = 
    sp0->val = 3; 
    std::cout << "sp1->val == " << sp1->val << std::endl; 
    return (0); 
sp1->val == 3

Header: <memory>

Namespace: std

© 2015 Microsoft