Un objeto "Guardia Alcance" es sólo un ejemplo de la más amplia RAII idioma.
Y no hay una implementación única de eso. Es algo que un programador de C++ tiene que comprender, no solo copiar/pegar. Afortunadamente, también es bastante trivial de implementar.
Crea una clase que representa algún tipo de recurso. Cuando la clase es instanciada (por uno de sus constructores), debe adquirir el recurso y lanzar una excepción si falla. Cuando se destruye la clase, debe disponer del recurso, realizando toda la limpieza necesaria.
Y ... eso es todo. También debe manejar el constructor de copias y el operador de asignación (clonando el recurso o haciendo que estas dos funciones sean privadas para que nunca se llamen).
No necesita encontrar "una buena implementación", porque usted mismo va a escribir docenas y docenas de implementaciones diferentes. Son triviales de escribir, y no pueden reutilizarse fácilmente porque cada uno envuelve un tipo diferente de recurso.
Nunca escuché hablar de esto antes - para otros me mienten, vea http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Scope_Guard. Parece poco probable que sea muy útil, en mi humilde opinión. Y es trivial de implementar: no necesita "encontrar una implementación". –
@Neil: interesante porque es muy diferente de lo que esperaría de un modismo relacionado con RAII. Me pregunto quién maneja el recurso después de una ejecución exitosa. –
@Matthieu Me también. No puedo ver lo que esto tiene sobre los indicadores inteligentes, a excepción de las posibilidades adicionales de errores. –