Règle du zéro
La meilleure réponse à la règle des cinq : concevoir des classes qui n'ont besoin d'aucune des cinq.
Laissez chaque ressource être détenue par un type qui la gère déjà correctement — unique_ptr pour un pointeur, vector pour un tampon, string pour du texte, fstream pour un fichier — et le destructeur, les copies et les déplacements générés par le compilateur sont tous corrects d'eux-mêmes, puisqu'ils délèguent simplement le travail aux membres. Conséquence : la règle des cinq ne s'applique qu'à la poignée de types qui implémentent réellement la gestion de ressources, tandis que le reste de la base de code ne déclare rien. La règle a été formulée par R. Martinho Fernandes en 2012. Corollaire utile : une classe qui a écrit = default sur les cinq est généralement le signe que quelqu'un a appliqué la règle des cinq là où la règle du zéro aurait suffi.