I had this same problem a few years ago and it irked me to no end.
The rules in C are more simply stated (i.e. they don’t list exceptions like converting char**
to const char*const*
). Consequenlty, it’s just not allowed. With the C++ standard, they included more rules to allow cases like this.
In the end, it’s just a problem in the C standard. I hope the next standard (or technical report) will address this.