В приведенном ниже примере показано, как объявить и инициализировать экземпляры shared_ptr, которые будут совместно владеть объектом, память для которого уже выделена с помощью другого экземпляра shared_ptr. Предполагается, что sp2 — это инициализированный указатель shared_ptr.

//Initialize with copy constructor. Increments ref count.
auto sp3(sp2);

//Initialize via assignment. Increments ref count.
auto sp4 = sp2;

//Initialize with nullptr. sp7 is empty.
shared_ptr<Song> sp7(nullptr);

// Initialize with another shared_ptr. sp1 and sp2
// swap pointers as well as ref counts.
sp1.swap(sp2);
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence