Was ist die Rule of Five, und was generiert der Compiler für dich?
Wenn eine Klasse einen eigenen Destruktor, Copy-Konstruktor oder eine Copy-Zuweisung braucht, braucht sie fast sicher alle fünf plus Move-Konstruktor und Move-Zuweisung – weil sie eine Ressource besitzt. Der Compiler generiert sie implizit, aber das Deklarieren eines davon unterdrückt einen Teil der anderen: Schreibst du einen Destruktor, werden die Move-Operationen nicht mehr generiert, und Kopien treten still an ihre Stelle. Die Rule of Zero ist noch besser – besitze Ressourcen über Member, die sich bereits selbst verwalten.