Eclipse CDT C++20支持

4

有没有办法在Eclipse 2020-03(CDT 9.11)中启用对C++20功能的支持?我的意思是摆脱不正确的语法突出显示,例如忽略C++20标准中定义的'concept'、'requires'和其他新添加的关键字。我安装并使用了支持这些功能的GCC10,所以代码可以无问题构建,但是Eclipse CDT仍然抱怨...感谢任何愿意提供建议的人。Martin

2个回答

2

目前Eclipse CDT不支持C++20。实际上,对于C++17的支持已经相当高,但尚未完全完成。如果需要C++20支持,最好使用另一个IDE,或者如果需要的话,在CDT中实现支持。


我正在浏览网络,试图找到另一个支持C++20的集成开发环境,但是我一直没有成功。你能分享一下哪个C++20集成开发环境值得尝试吗? - Martin Kopecký
@MartinKopecký 我使用Eclipse CDT来进行C++20编程,因为它的“支持”只是视觉上的,我可以禁用IDE的错误和警告,这并不重要。只有一些颜色高亮缺失,例如consteval。但只要编译器工作正常,并在项目设置中正确配置,所有编译器输出也会产生正确的Eclipse标记。(我在Windows上使用winlibs.com提供的GCC 10.2.0编译器。) - xamid
@MartinKopecký 是的。要禁用自定义错误和警告,请转到“窗口”、“首选项”、“C/C++”、“代码分析”,然后禁用您想要禁用的内容,并确保在“项目”、“属性”、“C/C++常规”、“代码分析”中启用“使用工作区设置”,或者在那里禁用警告和错误。语法错误(出现未知关键字,如consteval)可以在Windows、首选项、常规、编辑器、文本编辑器、注释、C/C++出现中禁用。我只禁用了“垂直标尺”,以便仍然标记新关键字,但禁用所有标记将不会留下任何迹象。 - xamid
这个答案似乎有点过时了,Eclipse CDT现在支持2a标准,但不支持2b标准。不幸的是,对于我来说,ranges和views似乎是在2b中。我正在寻找如何让Eclipse CDT使用gcc12,它完全支持c++2的2b标准。 - pacmaninbw
@ greywolf82,Eclipse现在支持C++ v20,您只需在编译器中启用额外的标志--std=c++20即可。已经测试过,适用于Eclipse和VS Code。 - Scott Milella
显示剩余5条评论

0

现在有一种方法,我刚刚启用并确认了它。

要在Eclipse中按项目启用C++ v20(我还没有找到如何将其设置为所有项目的默认值),请按照以下步骤操作:

要为特定项目启用C++ v20,请右键单击项目,选择属性> C/C++构建> 设置> GCC C++编译器> 其他选项,在“其他标志”框中添加“--std=c++20”。

您可以使用以下代码进行验证:

 #include <iostream>
using namespace std;

int main() {

     if (__cplusplus == 202002L)
                 std::cout << "Your running C++20" << endl;
              else if    (__cplusplus == 201703L)
                  std::cout << "Your running C++17" << endl;
              else if (__cplusplus == 201402L)
                  std::cout << "Your running C++14" << endl;
              else if (__cplusplus == 201103L)
                  std::cout << "Your running C++11" << endl;
              else if (__cplusplus == 199711L)
                  std::cout << "Your running C++98" << endl;
              else
                  std::cout << "pre-standard C++" << endl;

    return 0;
}

为了在 Visual Studio Code 上实现同样的功能,这个网址帮助我完成了它:

https://www.youtube.com/watch?v=Mw7Jfzavx0U

如果有人知道如何将此设置为所有C/C++项目的默认设置,我很想知道。 (仍在寻找答案,如果找到答案会回来更新)。

这是我的Eclipse终端窗口的图片,显示C++ v20正在运行: enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接