С помощью следующего кодаКак преобразовать «указатель на тип указателя» на const?
void TestF(const double ** testv){;}
void callTest(){
double** test;
TestF(test);
}
я получаю это:
'TestF' : cannot convert parameter 1 from 'double **' to 'const double **'
Я не могу понять, почему. Почему test
не может быть незаполненным к const double**
? Почему я должен делать это явно? Я знаю, что
TestF(const_cast<const double**>(test))
делает мой код правильным, но я считаю, что это не нужно.
Есть ли какие-то ключевые понятия о const, что мне не хватает?
Вопрос был рассмотрен много раз здесь, но вот запись в FAQ, посвященная этому самому вопросу http://www.parashift.com /c++-faq/constptrptr-conversion.html – AnT
http://stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-int-const –
Возможный дубликат [константа и указатели на указатели] (http://stackoverflow.com/questions/14441979/constness-and-pointers-to-pointers) – AnT