shared_ptr::shared_ptr
Konstrukce shared_ptr.
shared_ptr();
shared_ptr(nullptr_t);
shared_ptr(const shared_ptr& sp);
shared_ptr(shared_ptr&& sp);
template<class Other>
explicit shared_ptr(Other *ptr);
template<class Other, class D>
shared_ptr(Other *ptr, D dtor);
template<class D>
shared_ptr(nullptr_t ptr, D dtor);
template<class Other, class D, class A>
shared_ptr(Other *ptr, D dtor, A alloc);
template<class D, class A>
shared_ptr(nullptr_t ptr, D dtor, A alloc);
template<class Other>
shared_ptr(const shared_ptr<Other>& sp);
template<class Other>
shared_ptr(const weak_ptr<Other>& wp);
template<class &>
shared_ptr(std::auto_ptr<Other>& ap);
template<class &>
shared_ptr(std::auto_ptr<Other>&& ap);
template<class Other, class D>
shared_ptr(unique_ptr<Other, D>&& up);
template<class Other>
shared_ptr(const shared_ptr<Other>& sp, Ty *ptr);
template<class Other, class D>
shared_ptr(const unique_ptr<Other, D>& up) = delete;
Parametry
Other
Typ řízena argument ukazatele.ptr
Ukazatel ke kopírování.D
Typ deleter.A
Typ modulu pro přidělování.dtor
Deleter.ator
Přidělování.sp
Kopírovat inteligentní ukazatel.wp
Slabé ukazatel.ap
Ukazatel automatické kopírování.
Poznámky
Konstruktory každý vytvořit objekt, který vlastní prostředek s názvem operand sekvencí.Konstruktor shared_ptr(const weak_ptr<Other>& wp) vyvolá výjimku objekt typu bad_weak_ptr Class -li wp.expired().
Příklad
// std_tr1__memory__shared_ptr_construct.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
struct deleter
{
void operator()(int *p)
{
delete p;
}
};
int main()
{
std::shared_ptr<int> sp0;
std::cout << "(bool)sp0 == " << std::boolalpha
<< (bool)sp0 << std::endl;
std::shared_ptr<int> sp1(new int(5));
std::cout << "*sp1 == " << *sp1 << std::endl;
std::shared_ptr<int> sp2(new int(10), deleter());
std::cout << "*sp2 == " << *sp2 << std::endl;
std::shared_ptr<int> sp3(sp2);
std::cout << "*sp3 == " << *sp3 << std::endl;
std::weak_ptr<int> wp(sp3);
std::shared_ptr<int> sp4(wp);
std::cout << "*sp4 == " << *sp4 << std::endl;
std::auto_ptr<int> ap(new int(15));
std::shared_ptr<int> sp5(ap);
std::cout << "*sp5 == " << *sp5 << std::endl;
return (0);
}
Požadavky
Záhlaví: <memory>
Obor názvů: std