A C++ question,
I know
int* foo(void)
foo will return a pointer to int type
how about
int &foo(void)
just playing with variables to show you the meaning
int i = 5;
int * pI = &i;
int & referenceToI = * pI;
referenceToI = 4; // now i == 4
EDIT: References are just a syntactic sugar for easier pointers handling. at the assembly level, the code generated by the compiler returns to a you an address-pointer