¿Diferencia entre std :: reference_wrapper y puntero simple?

¿Por qué es necesario tenerlo std::reference_wrapper? ¿Dónde debe usarse? ¿En qué se diferencia de un simple puntero? ¿Cómo se compara su rendimiento con un simple