【问题标题】:How do I get VS Code to recognize 'constexpr'?如何让 VS Code 识别“constexpr”?
【发布时间】:2018-10-31 13:02:57
【问题描述】:

当我使用constexpr 时,VS Code 给我错误:“未知名称类型'constexpr'”。我在 osx 上做了一些关于 constexpr 的研究,发现我需要用-std=c++11 编译。但我的问题不在于编译,它只是让文本编辑器将constexpr 识别为有效关键字。我需要#include 以使其有效吗?

如何让 VS Code 在constexpr 上不给我一个错误?

【问题讨论】:

  • 这是您的编辑器没有完全理解 C++11 语言语法的问题。您也许可以将 constexpr 添加到 VSC 中的关键字列表中,但我不使用它,因此我对此没有指导。
  • 你是否安装了Microsoft C/C++ Extension for VS Code(或者其他一些扩展,我不使用VS Code)?
  • @jwdonahue VS 代码足够新,它肯定应该有一个内置选项来使用 C++11(我认为它只是在 2011 年之后作为一个项目开始的),但我没有不知道是什么。
  • 您在c_cpp_properties.json 文件中设置了哪个版本的标准?我机器上的VS Code用constexpr没有问题
  • VS 代码是全新且不稳定的。最初根本不支持非打字稿编程语言。当它是 Microsoft 内部工具时,我在那里。我不认为它的智能感知引擎完全有能力,但我实际上并不知道。然而,这似乎是一个编辑器配置问题。

标签: c++ macos visual-studio-code


【解决方案1】:

假设您安装了 Microsoft C/C++ 扩展,问题很可能是它使用了错误的 C++ 标准。 constexpr 是在C++11 中引入的(意思是2011 标准),所以这是最低要求; C++98 和 C++03 不行。

要告诉 VSCode 使用哪个标准,请转到命令面板 (Ctrl+Shift+P) 并键入“C/C++:编辑配置”并按 Enter。向下滚动到“C++ 标准”并从下拉列表中选择“C++11”(或更高版本):

然后它应该将constexpr 识别为关键字。

如果这不起作用,或者您遇到其他问题,我建议您阅读 VSCode Getting Started with C++ 教程,因为这将为您提供一个有效的配置。

另外,检查“C/C++:日志诊断”命令的输出(在调色板中)。这将报告有关 VSCode 如何认为它是为 C++ 配置的各种详细信息。

【讨论】:

    猜你喜欢
    • 2019-03-15
    • 2020-12-12
    • 2018-02-13
    • 2017-05-26
    • 1970-01-01
    • 2021-08-26
    • 2020-09-08
    • 1970-01-01
    • 2022-10-05
    相关资源
    最近更新 更多