Преобразование const char [] в char * в Visual Studio 2019
При компиляции моего кода в Visual Studio 2019 вылезает ошибка C2664: невозможно преобразовать аргумент из "const char [5]" в "char *". В то же время, у меня есть проект в Visual Studio 2017, где этот же код работает. Я не знаю, связано ли это с версией студии или с настройками проекта. Вопрос в том, можно ли как-то исправить эту ошибку настройками проекта, не меняя код? Про /permissive- читал, убрал его, не помогло.
Ответы (1 шт):
Студия не была бы студией, если бы не разрешала делать страшное. Оказывается, большой кусок Windows SDK закладывается на то, что можно нарушить правило и скастить const char* в char*.
Вот сам ключ /Zc:strictStrings-. Обратите внимание на минус в конце.
Почему оно раньше работало, а теперь нет? просто поменяли значение по умолчанию.
Но будьте осторожны. Используйте только в случае крайней необходимости.