In Altre caratteristiche del C ++, argomenti di riferimento del Google C ++ Style Guide , ho letto che i riferimenti non const non devono essere utilizzati.
All parameters passed by reference must be labeled const.
È chiaro che guardare le chiamate di funzione che usano riferimenti come argomenti è assolutamente confuso per i programmatori C, ma C e C ++ sono lingue diverse ora. Se un parametro di output è richiesto , utilizzando un puntatore per un parametro di output richiesto, è possibile saltare l'intero corpo della funzione, il che rende più complicata l'implementazione di una funzione (aumenta formalmente il ciclomatic complessità e profondità di una funzione).
Mi piacerebbe rendere il codice C ++ più facile da capire / mantenere possibile, quindi sono generalmente interessato a leggere le guide di stile di codifica. Ma per adattare le migliori pratiche di un team, penso che comprendere la logica dietro gli elementi di guida dello stile sia un fattore importante.
I riferimenti non const sono davvero così brutti? li sta escludendo solo da Google o è una regola comunemente accettata? Cosa giustifica lo sforzo extra per l'implementazione dei parametri di output come puntatori?