Это сообщение об ошибке, которое появляется при возникновении ситуации, подобной следующей:
char* pointer_to_nonconst = "string literal";
Почему? Ну, C и C ++ различаются по типу строкового литерала. В C тип является массивом char, а в C ++ это constant массив char. В любом случае, вам не разрешено изменять символы строкового литерала, поэтому const в C ++ на самом деле не ограничение, а скорее вопрос безопасности типов. Преобразование из const char*
в char*
обычно невозможно без явного приведения по соображениям безопасности. Но для обратной совместимости с C язык C ++ по-прежнему позволяет назначать строковый литерал для char*
и выдает предупреждение о том, что преобразование не рекомендуется.
Итак, где-то вам не хватает одного или нескольких const
в вашей программе для правильности констант. Но код, который вы показали нам, не является проблемой, так как он не делает такого рода устаревшее преобразование. Предупреждение, должно быть, пришло из другого места.