¿Beneficios de usar reference_wrapper en lugar de puntero sin formato en contenedores?

Qué beneficios tiene usarstd::reference_wrapper como parámetro de plantilla de contenedores en lugar de punteros sin formato? Es decirstd::vector<std::reference_wrapper<MyClass> > vs.std::vector<MyClass*>

e gusta olvidar los valores nulos y no tener que usar la sintaxis del puntero, sino la verbosidad de los tipos (es decir,vector<reference_wrapper<MyClass> >) además de que el sitio de la llamada use std :: ref para ajustar la referencia real me hace pensar que no vale la pena.

Me refiero a casos en los que usar std :: shared_ptr o cualquier otro puntero inteligente no es una opción.

¿Existen otros beneficios de usar reference_wrapper o algún otro factor que actualmente no estoy teniendo en cuenta? (Creo que mi pregunta se aplica tanto a la referencia de envoltura de C ++ 11 como a la de impulso)

Respuestas a la pregunta(4)

Su respuesta a la pregunta