Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Austausch zwei shared_ptr oder weak_ptr Objekte.
template<class Ty, class Other>
void swap(shared_ptr<Ty>& left, shared_ptr<Other>& right);
template<class Ty, class Other>
void swap(weak_ptr<Ty>& left, weak_ptr<Other>& right);
Parameter
Ty
Der Typ gesteuert vom linken freigegebenen/schwachen Zeiger.Other
Der Typ, der durch das Recht gesteuert wurde, wurden frei,/schwacher Zeiger.left
Der linke freigegebene/schwache Zeiger.right
Freigegebener/schwacher Zeiger des man.
Hinweise
Der Vorlagenfunktionsaufruf left.swap(right).
Beispiel
// std_tr1__memory__swap.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
struct deleter
{
void operator()(int *p)
{
delete p;
}
};
int main()
{
std::shared_ptr<int> sp1(new int(5));
std::shared_ptr<int> sp2(new int(10));
std::cout << "*sp1 == " << *sp1 << std::endl;
sp1.swap(sp2);
std::cout << "*sp1 == " << *sp1 << std::endl;
swap(sp1, sp2);
std::cout << "*sp1 == " << *sp1 << std::endl;
std::cout << std::endl;
std::weak_ptr<int> wp1(sp1);
std::weak_ptr<int> wp2(sp2);
std::cout << "*wp1 == " << *wp1.lock() << std::endl;
wp1.swap(wp2);
std::cout << "*wp1 == " << *wp1.lock() << std::endl;
swap(wp1, wp2);
std::cout << "*wp1 == " << *wp1.lock() << std::endl;
return (0);
}
Anforderungen
Header: <memory>
Namespace: std