no veo cómo conseguir scoped_ptr
scoped_array
o de usar Deleter encargo
No se puede.
Tal vez haya otra implementación que permita una eliminación controlada similar a shared_ptr
?
Si su compilador soporta referencias rvalue y su aplicación biblioteca estándar implementa std::unique_ptr
, puede utilizar eso.
De lo contrario, la implementación boost::scoped_ptr
es muy sencilla. The latest version es menos de 100 líneas de código simple. Sería bastante simple crear su propia derivada que tenga un eliminador personalizado (ya sea un parámetro estático a través de una plantilla o dinámico a través de una función o un funtor proporcionados en tiempo de ejecución).
scoped_ptr es simple, pero habilitar la eliminación controlada no será tan sencillo. No es tan complejo como shared_ptr, pero aún así preferiría no codificarlo si hay una solución de biblioteca disponible. – pic11