问题:原本能够使用c++17特性的工程突然间不能使用
定位过程:
- 先确认是否是g++出了问题,网上找了一个c++17的新特性例子,使用g++ XXX.cpp -o XXX,和g++ -std=c++17 XXX.cpp -o XXX 两个方式进行测试,结果表明:明确指定c++17后,能够使用新特性;
- 确定CMakeLists.txt是否有问题,先注释掉语句
- set(CMAKE_CXX_STANDARD 17)
接着进行make,然后取消该行注释,再次make,发现指定c++17是有效的。
- 陷入纠结后,使用vscode的cmake插件进行配置,接着使用make指令,最终编译通过;
当前结论:CMake会影响工程的构建,后续重新安装cmake后才能确定是否是cmake的问题;