VS 2017不会将const char*隐式转换为char*

Jor*_*dan 4 c++ compiler-errors visual-studio visual-studio-2017

我最近安装了VS 2017,并遇到了一个奇怪的问题.基本上,我不能使用硬编码的字符串而不明确地将它们转换为(char*).如果我说了类似的话Function("test"),它只会抛出一个错误,指出const char*与char*不兼容.我真的不想坚持VS 2015 :(.任何人都知道如何让VS认识到这些是同一回事?

非常感谢提前.

Mil*_*nek 7

VisualStudio 2017 15.5开始/permissive-为所有新解决方案设置标志,这禁止将字符串文字隐式转换为非const char*.您可以编辑解决方案的属性以在更新代码库时禁用该标志以符合C++标准.它在项目属性中"C/C++"下的"语言"选项卡中列为"一致性模式".

  • @Jordan:不幸的是,这是你在石器时代的代码.VS 2015和2017都可以接受完全正确的代码(大多数正确的代码一般都会被接受到2002年)尝试至少在新代码中开始使用`const`,当函数接受一个它不会写的指针. (2认同)