Qt-C2429:语言功能"嵌套命名空间定义"需要编译器标志"/std:c++latest"
问题现象:
今天早上在给同事讲代码时,打开工程,发现之前可以编译的工程,在未修改代码,未修改SDK的情况下,无法编译。并且提示如下:
C2429:语言功能"嵌套命名空间定义"需要编译器标志"/std:c++latest"。
问题原因:
在各种百度,各种查,各种问后,发现这个提示是说代码中出现了“嵌套命名空间”,这个功能只有C++17之后支持,而你的C++标准不支持,需要使用新的标准。
网上说的都是在VS2019中设置一下C++17标准,而我使用的是QtCreator。我可以确认的是我现在工程中使用的就是C++17标准。
问题处理:
工程使用的是C++17,但是还提示,我把工程目录下的.user文件全部删除后,再重新生成工程,编译通过了!神奇呀。
作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎关注我,一起进步!扫描下方二维码即可加我