In " Andere C ++ - Funktionen", "Referenzargumente" des Google C ++ - Stilhandbuchs , habe ich gelesen, dass Verweise, die keine Konstanten sind, nicht verwendet werden dürfen.
Alle als Referenz übergebenen Parameter müssen mit const gekennzeichnet sein.
Es ist klar, dass das Betrachten von Funktionsaufrufen, die Referenzen als Argumente verwenden, für C-Programmierer absolut verwirrend ist, aber C und C ++ sind jetzt verschiedene Sprachen. Wenn ein Ausgabeparameter erforderlich ist , kann die Verwendung eines Zeigers für einen erforderlichen Ausgabeparameter dazu führen, dass der gesamte Funktionskörper übersprungen wird, was die Implementierung einer Funktion komplizierter macht (was die zyklomatische Komplexität und Tiefe einer Funktion formal erhöht ).
Ich möchte, dass C ++ - Code so einfach wie möglich zu verstehen und zu warten ist. Daher bin ich generell daran interessiert, Coding-Style-Guides zu lesen. Um die Best Practices in einem Team anzupassen, ist es meiner Meinung nach ein wichtiger Faktor, die Hintergründe der Style-Guide-Elemente zu verstehen.
Sind nicht konstante Referenzen wirklich so schlecht? Ist das Verbot nur Google-spezifisch oder eine allgemein akzeptierte Regel? Was rechtfertigt den zusätzlichen Aufwand für die Implementierung von Ausgabeparametern als Zeiger?