Чтобы понять эти фразы, давайте посмотрим на пару вещей:
typedef double Foo;
void fooFunc(Foo &_bar){ ... }
Таким образом, это передает двойной по ссылке.
typedef double* Foo;
void fooFunc(Foo &_bar){ ... }
теперь он передает указатель на double по ссылке.
typedef double** Foo;
void fooFunc(Foo &_bar){ ... }
Наконец, он передает указатель на указатель на double по ссылке. Если вы будете думать с точки зрения typedefs, как это, вы поймете правильное упорядочение символов & и * plus, что это означает.