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é?