C ++ get-Methode - Rückgabe nach Wert oder Referenz

Ich habe eine sehr einfache Frage, aber leider kann ich die Antwort nicht selbst herausfinden.

Angenommen, ich habe eine Datenstruktur, die Einstellungen enthält und sich wie eine Einstellungsübersicht verhält. Ich habe einGetValue(const std::string& name) -Methode, die den entsprechenden Wert zurückgibt.

Nun versuche ich herauszufinden, welche Art von Return-Value-Ansatz besser wäre. Das Offensichtliche ist, meine Methode so zu machen, dass sie sich wie @ verhäl

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

und geben Sie eine Kopie des Objekts zurück und verlassen Sie sich in Bezug auf die Leistungsbedeutung auf RVO.

Der andere würde bedeuten, zwei Methoden zu machen

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

Das bedeutet im Allgemeinen, Code zu duplizieren oder eine dieser Routinen zweimal mit schlechten Konstanten zu verwenden.

#Q

Was wäre Ihre Wahl in einer solchen Situation und warum?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage