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Что бы вы выбрали в такой ситуации и почему?