Diferencia entre puntero a puntero frente a referencia a puntero (C ++)
Tengo un poco de código COM que utiliza punteros de interfaz. El autor original del código implementó funciones que devuelven un puntero de interfaz como este:
HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject* &pEnumerator ); // (1)
en lugar de la tradicional
HRESULT Query ( IN BSTR sQuery, OUT IEnumWbemClassObject** ppEnumerator ); // (2)
La función (1) se llama así:
hRes = Query ( sQuery, pEnumerator ); // (3)
que definitivamentemir mal pero funciona bien. No estoy seguro si solo estoy tomando esta línea porque el parámetro out no es un puntero a la variable de salida o porque hay algo mal con este enfoque.
Existe alguna ventaja de utilizar una referencia a puntero en lugar de un puntero a puntero para los parámetros de salida?