无法将 Visual Studio Code 配置为使用 C++14 标准(即使我更改了一些设置,也使用 C++03 标准)

Can't configure Visual Studio Code to use C++14 standard (C++03 standard is used even though I changed some settings)

提问人:Yana 提问时间:1/18/2023 最后编辑:Yana 更新时间:1/19/2023 访问量:223

问:

我做了一个非常简单的应用程序,当我通过以下方式从终端构建和运行它时,该应用程序可以工作:

g++ -std=c++14 helloworld.cpp
./a.out

现在,我正在尝试配置 Visual Studio Code 来调试此应用程序。我做了:

  • 设置 - >搜索“cppStandard” - >更改为用户和工作区的 c++14
  • 添加 Debug 配置 -> C/C++:g++ 构建和调试活动文件
  • 选择 -> 调试 C/C++ 文件。 错误显示:'function\<void ()\>' is deprecated: Using std::function in C++03 is not supported anymore. Please upgrade to C++11 or later, or use a different type \[-Wdeprecated-declarations\]

IDE 还会标记以下代码:

std::function<void()> func = []() { std::cout << "From Thread ID : "<<std::this_thread::get_id() << "\n"; };

作为错误,显示:

class std::__1::function<void ()> 'function<void ()>' is deprecated: Using std::function in C++03 is not supported anymore. Please upgrade to C++11 or later, or use a different type [-Wdeprecated-declarations]gcc

编辑: 我正在使用带有 Apple 芯片的 macOS Ventura。 我添加了c_cpp_properties.json(通过:Control+Shift+P -> c/c++ 编辑配置)。

    {
        "configurations": [
            {
                "name": "Mac",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [],
                "macFrameworkPath": [
                    "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
                ],
                "compilerPath": "/usr/bin/clang",
                "intelliSenseMode": "macos-clang-arm64",
                "cppStandard": "c++14"
            }
        ],
        "version": 4
    }

我仍然收到关于 C++03 与我的代码不兼容的相同错误,有什么建议吗?

C++ 可视化工作室代码 C++03

评论

0赞 drescherjm 1/18/2023
有什么建议吗?了解 3 个 json 文件是什么,以及需要编辑哪 2 个文件才能更改默认的 c++ 标准。除非您使用的是 code-runner、CMakeTools 或 MakeFiletools 等生成扩展,否则您必须对扩展使用的文件进行更改。
0赞 Yana 1/18/2023
@drescherjm,如果你的意思是在两个位置(当前项目和用户级别)编辑 “C_Cpp.default.cppStandard”: “c++14” in settings.json,这相当于从“设置”中更改此参数
1赞 drescherjm 1/18/2023
有,但你没有提到你的操作系统和编译器,所以我们无法将你链接到你的工具链的特定 VSCode 文档。如果您使用的是 macOS,VSCode 建议您使用 c++17,并在文档中解释了更改。tasks.jsonc_cpp_properties.jsonlaunch.json

答: 暂无答案