我在启用C ++ 17的QtCreator中使用了一个CMake项目。
我可以毫无问题地编译和使用C ++ 17功能。打印__cplusplus
的值时,我得到201703
,但是当我将鼠标悬停在QtCreator编辑器中的宏上时,它显示的值为1
。
因此,我没有任何C ++ 11(及更高版本)功能的代码完成或突出显示。这使处理起来很烦。
诸如<memory>
之类的标准标头具有许多检查,如:
#if __cplusplus >= 201103L
// unique_ptr and shared_ptr
由于错误的__cplusplus
值,编辑器会在所有情况下禁用所有代码。
环境:
这是QtCreator和CMake项目的已知问题吗?是否可以通过QtCreator编辑器来解析CMake / GCC提供的正确__cplusplus
值的代码?
答案 0 :(得分:0)
QtCreator 4.7.2似乎有一个关于将__cplusplus
定义为1
的错误。现在,升级到4.9.0可以正确地将__cplusplus
定义为201703
(对于C ++ 17 Cmake项目)。