Сообщение об ошибке указывает, что _menuMain_Strings_1
идентифицирует указатель на данные const
(что он делает), но вы используете его для инициализации указателя на данные, отличные от const
. Вы не представили все детали этих типов, но речь идет не о компиляторе, отбрасывающем квалификаторы. Скорее, речь идет о вашем коде с несоответствием const
-квалификации.
Такая ситуация требует предупреждения, потому что, если на самом деле указываемые данные объявлены const
(в отличие от того, что квалификация присутствует только в указателе), то попытка изменить их приводит к неопределенному поведению. Компилятор может определить это и отклонить, когда доступ осуществляется через исходный указатель, квалифицированный const
, но не когда доступ осуществляется через не const
квалифицированную копию, с которой инициализируется _menuDef_Main_1
.
Как я могу удовлетворить компилятор без его предупреждения?
Используйте const
последовательно или не используйте его вообще. И обратите внимание, что это вирус: вы можете свободно применять const
-квалификацию, но вы не можете безопасно ее удалить. Предположительно, вам нужно будет изменить определение MENU_DEFINITION
, чтобы оно соответствовало const
соответствующим образом, и для этого может потребоваться внести дополнительные изменения.