Método C ++ get - retornando por valor ou por referência
Fiz uma pergunta muito simples, mas infelizmente não consigo descobrir a resposta.
Suponha que eu tenho uma estrutura de dados que contém configurações e age como um mapa de configurações. eu tenho umGetValue(const std::string& name)
método, que retorna o valor correspondente.
Agora estou tentando descobrir - que tipo de abordagem de valor-retorno seria melhor. O óbvio significa fazer meu método agir como
std::string GetValue(const std::string& name) const
e retorne uma cópia do objeto e confie no RVO nos significados de desempenho.
O outro significaria fazer dois métodos
std::string& GetValue(...)
const std::string& GetValue(...) const
o que geralmente significa duplicar o código ou usar algumas constantes maléficas para usar uma dessas rotinas duas vezes.
#
QQual seria sua escolha nesse tipo de situação e por quê?