Visual Studio无法更新C++版本。

3
我正在尝试使用<filesystem>库,为此我需要C++17或更高版本。我去了项目属性界面,找到“常规”选项卡,然后将语言标准设置为C++20。但是当我编译时,它说该库仅在C++17或更高版本中可用,并且不允许我使用它。
我查看了<filesystem>头文件文档,发现_HAS_CXX17宏被定义为false,这导致了问题。 我去了定义_HAS_CXX17宏的位置,并尝试将其设置为true,但Visual Studio不允许用户编辑该文件。
这个问题让我感到困惑,因为我曾在其他项目中使用<filesystem>库,并且C++版本更新也没有任何问题。 我没有更改整个Visual Studio应用程序的设置,也没有在操作任何文件之前修改过它们。

7
典型错误是忘记项目属性拥有自己的组合框用于配置和平台。它们与当前活动的配置/平台不同步。我偶尔会犯这样的错误,即更改非当前活动的配置/平台的属性。 - Sedenion
6
常见的错误是更改错误的配置或平台设置。在“项目 > 属性”中,注意对话框顶部的两个组合框。在更改此设置之前,您需要选择“所有配置”和“所有平台”。 - Hans Passant
3
我在Visual Studio上使用了C++20的<filesystem>库,因此我怀疑你可能犯了上述错误之一。你绝对不应该试图编辑系统头文件来解决问题,那是疯狂的行为。 - john
你的问题解决了吗? - Minxin Yu - MSFT
@MinxinYu-MSFT 是的,感谢Hans Pasant和Sedenion的回答。 - TwistedBlizzard
显示剩余3条评论
1个回答

2
正如我在评论中怀疑的那样,并且由OP证实,问题在于OP更改了一个配置和/或平台的属性,而这不是当前活动的配置和/或平台。在属性对话框中很容易忘记选择所需的选项,因为属性中的组合框与确定活动配置/平台的组合框未同步。 请参见以下图片: enter image description here

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