Bagaimanakah Saya Boleh Menyesuaikan Proses Pemadaman `boost::shared_ptr`?

DDD
Lepaskan: 2024-10-26 21:45:29
asal
255 orang telah melayarinya

How Can I Customize the Deletion Process of `boost::shared_ptr`?

Penghapus Tersuai untuk rangsangan::shared_ptr

Pertanyaan:

Dalam senario tertentu, pembangun mungkin menghadapi keperluan untuk menyesuaikan tingkah laku proses pemadaman boost::shared_ptr. Pertimbangkan objektif berikut:

  • Timpa pengendali padam lalai dengan fungsi tersuai ptr->deleteMe().
  • Kendalikan pengembalian fungsi gaya C yang memerlukan lib_freeXYZ(ptr) sebaliknya daripada padam biasa.

Penyelesaian:

Menggunakan Perpustakaan Templat Standard (STL) menawarkan penyelesaian yang berdaya maju untuk keperluan ini:

<code class="cpp">// Custom deleter for shared_ptr that invokes ptr->deleteMe()
boost::shared_ptr<T> ptr(new T, std::mem_fun_ref(&T::deleteMe));

// Custom deleter for shared_ptr that invokes lib_freeXYZ(ptr)
boost::shared_ptr<S> ptr(new S, std::ptr_fun(lib_freeXYZ));</code>
Salin selepas log masuk

Pendekatan ini membolehkan penyesuaian proses pemadaman yang dikehendaki untuk kedua-dua rangsangan::shared_ptr.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Proses Pemadaman `boost::shared_ptr`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!