W Inne funkcje C ++, Argumenty referencyjne z Google C ++ Style Guide , czytałem, że odniesienia const nie może być używany.
Wszystkie parametry przekazane przez odwołanie muszą być oznaczone jako const.
Oczywiste jest, że patrzenie na wywołania funkcji, które używają referencji jako argumentów, jest absolutnie mylące dla programistów C, ale C i C ++ są teraz różnymi językami. Jeśli wymagany jest parametr wyjściowy , użycie wskaźnika dla wymaganego parametru wyjściowego może spowodować pominięcie całego ciała funkcji, co komplikuje implementację funkcji (formalnie zwiększa złożoność cykliczną i głębokość funkcji).
Chciałbym, aby kod C ++ był tak łatwy do zrozumienia / utrzymania, jak to możliwe, więc ogólnie jestem zainteresowany czytaniem przewodników po stylu kodowania. Ale jeśli chodzi o dostosowanie najlepszych praktyk w zespole, uważam, że zrozumienie uzasadnienia elementów przewodnika po stylu jest ważnym czynnikiem.
Czy odniesienia non-const naprawdę są tak złe? Czy banowanie ich dotyczy tylko Google, czy jest to powszechnie akceptowana zasada? Co uzasadnia dodatkowy wysiłek związany z implementacją parametrów wyjściowych jako wskaźników?