The scope of declaration of variables in C++ can be pretty surprising:
void* a = &a;
^~~~~~~~~~~~~~~~~
a declared as `void*` from here on
Therefore, &a is void** but since any pointer type is implicitly convertible to void*…