Método get de C ++: devolución por valor o por referencia

He hecho una pregunta muy simple, pero desafortunadamente no puedo encontrar la respuesta.

Supongamos que tengo una estructura de datos que contiene configuraciones y actúa como un mapa de configuraciones. tengo unGetValue(const std::string& name) método, que devuelve el valor correspondiente.

Ahora estoy tratando de averiguar qué tipo de enfoque de valor de retorno sería mejor. La obvia significa hacer que mi método actúe como

std::string GetValue(const std::string& name) const

y devolver una copia del objeto y confiar en RVO en los significados de rendimiento.

El otro significaría hacer dos métodos.

std::string& GetValue(...)
const std::string& GetValue(...) const

lo que generalmente significa duplicar código o usar algunos lanzamientos constantes malvados para usar una de estas rutinas dos veces.

#Q

¿Cuál sería su elección en este tipo de situación y por qué?

Respuestas a la pregunta(4)

Su respuesta a la pregunta