เป็นเจ้าของร่วมกัน:และมาตรฐานที่นำมาจะสวยมากเช่นเดียวกับพวกเขาcounterparts Boost ใช้พวกมันเมื่อคุณต้องการแบ่งปันทรัพยากรและไม่รู้ว่าอันไหนที่จะเป็นคนสุดท้ายที่ยังมีชีวิตอยู่ ใช้เพื่อสังเกตทรัพยากรที่ใช้ร่วมกันโดยไม่มีผลกับอายุการใช้งานของมันและไม่ทำลายวงจร รอบที่ปกติไม่ควรเกิดขึ้น - ทรัพยากรสองรายการไม่สามารถเป็นเจ้าของกันได้
shared_ptrweak_ptrweak_ptrshared_ptr
โปรดทราบว่า Boost นอกจากนี้ข้อเสนอซึ่งอาจจะเป็นทางเลือกที่เหมาะสมกับshared_arrayshared_ptr<std::vector<T> const>
ถัดไปเพิ่มข้อเสนอintrusive_ptrซึ่งเป็นวิธีการแก้ปัญหาที่มีน้ำหนักเบาหากทรัพยากรของคุณมีการจัดการนับอ้างอิงอยู่แล้วและคุณต้องการปรับใช้กับหลักการ RAII อันนี้ไม่ได้เป็นลูกบุญธรรมตามมาตรฐาน
ความเป็นเจ้าของที่ไม่ซ้ำใคร:
 
Boost ยังมี a scoped_ptrซึ่งไม่สามารถคัดลอกได้และคุณไม่สามารถระบุผู้กำหนดได้ std::unique_ptrเป็นboost::scoped_ptrเตียรอยด์และควรจะเลือกเริ่มต้นเมื่อคุณจำเป็นต้องมีตัวชี้สมาร์ท จะช่วยให้คุณระบุ Deleter ในข้อโต้แย้งแม่แบบและเป็นสังหาริมทรัพย์boost::scoped_ptrซึ่งแตกต่างจาก นอกจากนี้ยังสามารถใช้งานได้อย่างสมบูรณ์ในคอนเทนเนอร์ STL ตราบใดที่คุณไม่ใช้การดำเนินการที่ต้องการประเภทที่คัดลอกได้ (ชัด)
โปรดทราบอีกครั้งว่า Boost มีรุ่นอาเรย์: scoped_arrayซึ่งมาตรฐานแบบครบวงจรโดยต้องการstd::unique_ptr<T[]>ความเชี่ยวชาญเฉพาะบางส่วนที่จะdelete[]เป็นตัวชี้แทนการdeleteอิง (ด้วยdefault_deleter) std::unique_ptr<T[]>นอกจากนี้ยังมีoperator[]แทนและoperator*operator->
โปรดทราบว่าstd::auto_ptrยังอยู่ในมาตรฐาน แต่มันก็เลิก
§D.10 [depr.auto.ptr]
  แม่แบบคลาสauto_ptrเลิกใช้แล้ว [ หมายเหตุ:เทมเพลตคลาสunique_ptr(20.7.1) มอบวิธีแก้ปัญหาที่ดีกว่า - บันทึกย่อ ]
ไม่มีความเป็นเจ้าของ:
 
ใช้พอยน์เตอร์พอยน์เตอร์ (พอยน์เตอร์พอยน์เตอร์) หรือการอ้างอิงสำหรับการอ้างอิงที่ไม่ได้เป็นเจ้าของไปยังทรัพยากรและเมื่อคุณรู้ว่าทรัพยากรจะอยู่ได้นานกว่าออบเจ็กต์ / ขอบเขตการอ้างอิง ชอบการอ้างอิงและใช้ตัวชี้แบบ raw เมื่อคุณต้องการความสามารถในการลบล้างหรือความสามารถในการตั้งค่าใหม่
หากคุณต้องการการอ้างอิงที่ไม่ได้เป็นเจ้าของทรัพยากร แต่คุณไม่ทราบว่าทรัพยากรนั้นจะอยู่ได้นานกว่าวัตถุที่อ้างอิงหรือไม่ให้แพ็คทรัพยากรในshared_ptrและใช้ a weak_ptr- คุณสามารถทดสอบได้ว่าผู้ปกครองshared_ptrยังมีชีวิตอยู่ด้วยlockหรือไม่ ส่งคืน a shared_ptrที่ไม่ใช่ค่า null ถ้าทรัพยากรยังคงมีอยู่ หากต้องการทดสอบว่าทรัพยากรใช้งานexpiredไม่ได้หรือไม่ ทั้งสองอาจฟังดูคล้ายกัน แต่มีความแตกต่างกันมากในการเผชิญกับการดำเนินการที่เกิดขึ้นพร้อมกันเนื่องจากexpiredรับประกันได้เฉพาะค่าส่งคืนสำหรับคำสั่งเดียว การทดสอบที่ไร้เดียงสาดูเหมือนจะเป็นเช่นนั้น
if(!wptr.expired())
  something_assuming_the_resource_is_still_alive();
เป็นสภาพการแข่งขันที่มีศักยภาพ