I have this simple code that compiles without errors/warnings:
void f(int&, char**&){} int main(int argc, char* argv[]) { f(argc, argv); return
The type of temp in
temp
char* temp[] = { "", "", nullptr };
is not char*[], it's
char*[3]
The latter can't be implicitly converted to `char**'.
In main, the type of argv is an unbound char* array which is equivalent to char**
main
argv
char*
char**
I admit, it's confusing :)