Tôi có một chức năng mà tôi muốn một hành động dọn dẹp được thực hiện 90% thời gian, nhưng trong 10% tôi muốn thực hiện một số hành động khác.Có cách nào để thay đổi hành động xóa trên phiên bản hiện tại của shared_ptr
Có cách nào để sử dụng một số điều khiển phạm vi tiêu chuẩn như shared_ptr<>
để ban đầu nó có thể có một hành động xóa và sau đó trong chức năng hành động xóa có thể được thay đổi?
shared_ptr<T> ptr(new T, std::mem_fun_ref(&T::deleteMe));
ptr.pn.d = std::mem_fun_ref(&T::queueMe);
Tại sao không thực thi các chiến lược xóa trong chính bản thân tùy chỉnh của bạn? – Abhay
Tôi chỉ đang cố gắng tránh viết deleter tùy chỉnh khi tôi chỉ cần chọn (hiện tại) giữa 2 hàm thành viên. –