C ++ метод get - возврат по значению или по ссылке

У меня очень простой вопрос, но, к сожалению, я не могу сам найти ответ.

Предположим, у меня есть некоторая структура данных, которая содержит настройки и действует как карта настроек. у меня естьGetValue(const std::string& name) метод, который возвращает соответствующее значение.

Сейчас я пытаюсь выяснить - какой подход с возвратом стоимости был бы лучше. Очевидное означает, что мой метод действует как

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

и вернуть копию объекта и положиться на RVO в значениях производительности.

Другой будет означать создание двух методов

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

что обычно означает дублирование кода или использование некоторых злых констант, дважды использующих одну из этих подпрограмм.

#Q

Что бы вы выбрали в такой ситуации и почему?

Ответы на вопрос(4)

Ваш ответ на вопрос