Ich muss eine Klasse schreiben, deren Konstruktor einen konstanten Verweis auf ein Objekt und speichert es lokal.C++: nicht temporäre const Referenz
Um die häufigsten Fehler zu vermeiden, die ich vorhersehen kann, möchte ich nur Verweise auf nicht-temporäre (dh: Referenzen auf lvalues) akzeptieren.
Wie kann ich eine Funktion schreiben, die konstante Referenzen nur auf nicht-temporäre verwendet?
Natürlich auch eine nicht nur vorübergehende außerhalb des Gültigkeitsbereichs gehen könnte und damit meine Klasse Verhalten zu brechen, aber ich glaube, dass temporäre Referenzen durch Verbieten werde ich die meisten Fehler vermeiden.
Warum glaubst du, vermeidest du die meisten Fehler so? –
Nun, das Objekt, dessen Referenz ich übergeben muss, muss nicht verwendet werden, nachdem es instanziiert wurde (dh ich instanziiere das Objekt und übergebe es, daher würde ich es aufgrund meines Codestils nicht auf dem Stapel instantiieren). Wenn ich vergesse, dass der Konstruktor einer anderen Klasse einen _permanenten_ Wert benötigt, sehe ich den vorübergehenden zurückgewiesenen (dh: kompilierten Zeitfehler), der sich an mich erinnern wird, hoffe ich. – peoro