Encontré una función con esta firma.Pasar argumentos de matriz por referencia
void foo(char (&x)[5])
{
}
Esta es la sintaxis para pasar una matriz de caracteres de tamaño fijo por referencia.
El hecho de que requiere paréntesis alrededor de &x
me parece inusual.
Probablemente sea parte del estándar C++ 03.
¿Cómo se llama este formulario? ¿Alguien puede indicar una referencia al estándar?
C++ decl no es un amigo sin embargo:
$ c++decl
Type `help' or `?' for help
c++decl> explain void foo(char (&x)[5])
syntax error
No puedo apuntar a la norma, pero creo que es porque 'char & x [5]' es una matriz de referencias de 5 caracteres, no una referencia a una matriz de caracteres de longitud 5. –
'C++ decl' es su amigo :-) –
8.3.2 Referencias "No debe haber referencias a referencias, ni matrices de referencias, ni punteros a las referencias". –