Types in C and C++ are read from right to left except that most people insist in placing the const
on the wrong side. Once you fixed the const
placement from
const GLvoid* const*
to
GLvoid const* const*
it becomes trivial to read the type: It is a pointer to a const
pointer to a const
object of type GLvoid
(you probably can't really have ovjects of type GLvoid
but it's the placeholder for any object). You can also have the combinations where the inner pointer is modifiable and/or the object is modifiable depending on which const
you leave out.