Das soll eine triviale Frage sein, aber ich konnte sie nicht explizit auf Stackoverflow finden.Bedingungen, unter denen der Compiler keine implicits definiert (Konstruktor, Destruktor, Kopierkonstruktor, Kopierzuweisung)
Folgendes wird implizit definiert, wenn es nicht vom Benutzer bereitgestellt wird.
- default (parameter) Konstruktor
- Copykonstruktor
- Kopie Zuweisungsoperator
- destructor
Aber ich habe irgendwo (ich kann nicht scheinen zu finden, jetzt), dass es zu lesen sind einige Bedingungen, unter denen der Compiler sie nicht implizit implementiert.
Was sind diese Bedingungen?
Nun, in all diesen zweiten Punkt unter Verwendung gesagt zu erzeugen, wird es als 'delete' implizit definiert, nur werden d. –
+1 Vergessen Sie nicht die C++ 11-Zusätze, wo Sie explizit deklarieren können, dass sie nicht erstellt werden sollten ('A (const A &) = delete;'), und Sie sollten Move Constructors der Vollständigkeit halber hinzufügen. – pickypg
@pickypg: Ich bin nicht wirklich sicher über Move-Konstruktoren, ich würde mich freuen, wenn Sie die gewünschte Information zu meiner Antwort hinzufügen –