I have this pair of declaration/definition on my Eclipse IDE (in a .h and .hpp respectively):
A( T* [] );
and
A<T>::A(T ** p_proc) { ... }
The first is an array of pointers, the other a pointer of pointers.
I am confused in that they are interchangeable here; Eclipse complains if I replace the ** by * [], throwing a syntax error. Eclipse does not raise errors when I do the opposite, though.
My question is twofold; are these two notations fundamentally the same? Are T [][] and T ** the same as well?
Why does Eclipse throw a syntax error when the hpp file has a type of * [], but not in the header?