Tengo una función en la que quiero que se realice una acción de limpieza el 90% del tiempo, pero en el 10% quiero hacer otra acción.¿Hay alguna manera de cambiar la acción de eliminación en una instancia existente de shared_ptr?
¿Hay alguna forma de utilizar un control de alcance estándar como shared_ptr<>
para que inicialmente pueda tener una acción de eliminación y luego, en la función, se pueda cambiar la acción de eliminación?
shared_ptr<T> ptr(new T, std::mem_fun_ref(&T::deleteMe));
ptr.pn.d = std::mem_fun_ref(&T::queueMe);
¿Por qué no aplicar sus estrategias de eliminación en su propio eliminador personalizado? – Abhay
Estaba tratando de evitar escribir el eliminador personalizado cuando solo tengo que elegir (actualmente) entre 2 funciones de miembro. –