C ++ Zuweisungsoperator - Compiler generiert oder benutzerdefiniert?

Ich habe eine mittelkomplexe C ++ - Klasse, die eine Reihe von Daten enthält, die von der Disc gelesen wurden. Es enthält eine vielseitige Mischung aus Schwimmern, Tinten und Strukturen und wird derzeit allgemein verwendet. Während einer umfassenden Codeüberprüfung wurde gefragt, ob wir einen benutzerdefinierten Zuweisungsoperator haben oder ob wir uns auf die vom Compiler generierte Version verlassen. Wenn ja, woher wissen wir, dass diese korrekt funktioniert? Nun, wir haben keine benutzerdefinierte Zuweisung geschrieben und daher wurde ein Komponententest hinzugefügt, um zu überprüfen, ob dies der Fall ist:

CalibDataSet datasetA = getDataSet();
CalibDataSet dataSetB = datasetA;

then datasetB ist dasselbe wie datasetA. Ein paar hundert Zeilen oder so. Jetzt besteht der Kunde darauf, dass wir uns nicht darauf verlassen können, dass der Compiler (gcc) für zukünftige Releases korrekt ist, und wir sollten unseren eigenen schreiben. Haben sie Recht darauf zu bestehen?

Zusätzliche Information

Ich bin beeindruckt von den bereits geposteten Antworten / Kommentaren und der Antwortzeit. Eine andere Möglichkeit, diese Frage zu stellen, könnte sein: Wann wird eine POD-Struktur / Klasse zu einer POD-Nicht-Struktur / Klasse?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage