【问题标题】:How to suppress "Syntax error" in Eclipse 4.7.3a如何在 Eclipse 4.7.3a 中抑制“语法错误”
【发布时间】:2018-10-30 08:24:35
【问题描述】:

This std::visit example 还不被 Eclipse CDT 理解,但它可以用 C++17 编译器很好地编译。

我的意思是这几行:

template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; };
template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>;

Eclipse 标记这两行并显示“语法错误”。我正在研究 Eclipse 设置,但没有找到任何可以简单地抑制“语法错误”的 @suppress 指令。

我的问题:
是一种如何抑制“语法错误”的方法吗?


设置Preferences | C/C++ | Code Analysis 包含以下部分:

  • 编码风格
  • 潜在的编程问题
  • 安全漏洞
  • 语法和语义错误

最后一部分包含对可以禁用或抑制的错误的更详细描述。
此部分是否包含“语法错误”,因为它显示在编辑器中,那么我的问题不存在。特别是,知道 CDT 并不总是最新的,这会有所帮助。

【问题讨论】:

  • 除非您想更改 IDE,否则不幸的是,您必须忍受它,直到 Eclipse 更新以处理最新标准(不幸的是,它现在有点滞后)。

标签: c++ eclipse eclipse-cdt c++17


【解决方案1】:

没有抑制单个语法错误的机制(@suppress 是特定于 CodAn(代码分析)错误的机制)。

您可以通过转到Preferences | General | Editors | Text Editors | Annotations,选择C/C++ Indexer Markers(这是为语法错误创建的标记类型)并取消选中其中的部分或全部复选框来抑制所有语法错误。

【讨论】:

  • 首先抱歉,我没有在问题中提到它,但不幸的是,这不是我的选择。 pure 语法错误未在此处列出,因此可以抑制它。
  • @AlBundy 我不确定你所说的“纯”是什么意思
  • @AlBundy:在我看来,您正在查看不同的偏好页面。你似乎在看Preferences | C/C++ | Code Analysis。我是说看看Preferences | General | Editors | Text Editors | Annotations
  • 是的,我在评论中混淆了两个不同的观点。取消选中 - 正如您所建议的那样 - 部分或全部复选框不是一个选项,因为那时 正确 “语法错误”也没有被标记。我只想为 unrecognized C++17 code 抑制错误标记,因为我现在正在使用 @suppress("...") 指令广泛执行此操作。可能 Eclipse 社区可以重新考虑在下一次更新中添加 pure“语法错误”抑制可能性,因为仍有许多不受支持的 C++17 功能会导致许多错误标记。
  • @AlBundy:我同意支持@suppress 处理语法错误是一个合理的增强请求。请随时file a bug 要求添加此内容。
【解决方案2】:

HighCommander4 的回答禁用 - 正如我评论的 - 所有 有意的“语法错误”标记。

所以,目前还没有解决方案来实现这一点。

我按照HighCommander4 的建议打开了ticket,它可能会在即将到来的Eclipse 更新中实现。

【讨论】:

    猜你喜欢
    • 2017-07-14
    • 2011-05-11
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2017-03-02
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多