Const char ошибка преобразования - PullRequest
2 голосов
/ 21 июня 2010

Я получаю следующую ошибку с gcc.

invalid conversion from ‘char**’ to ‘const char**’

С этим кодом.

void foo( const int &argc, const char **argv );

int main( int argc, char *argv[] )
{
   foo( argc, argv );                                                            
}

Почему это так?

1 Ответ

8 голосов
/ 21 июня 2010

При использовании в списке параметров функции объявление char *argv[] эквивалентно объявлению char **argv. По этой причине, когда вы передаете argv в foo, вы фактически пытаетесь преобразовать argv из типа char ** в тип const char **. Это незаконно. Прочтите FAQ http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17, почему это незаконно.

...