我正在将一些代码从一台安装有VS2017的电脑移动到另一台安装有VS2019的电脑上。除了不能使用std::filesystem之外,一切都很好。在我的旧代码中,我使用了C++14,并使用了std::experimental::filesystem。在新代码中,我想要升级到C++17,所以我改为使用std::filesystem(如下面的代码所示)。奇怪的是,Intellisense(我不确定这是否是正确的名称)没有显示错误。当我输入std::f时,它甚至显示filesystem。
但是代码无法构建并报错“namespace“std”没有成员“filesystem””。
我将C++语言标准更改为c++latest,VS2019版本为Community 16.6.5。
#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
std::string path = "C:\\";
for (const auto& entry : fs::directory_iterator(path))
std::cout << entry.path() << std::endl;
}
编辑:我最初问题的最后一行可能不够清晰:我已经将“C++语言标准”改为C++17或C++latest。
感谢@drescherjm,我们发现这是一个Cuda问题。有没有Cuda专家有什么想法?
/std:c++14
、/std:c++17
或/std:c++latest
? - user1143634-std=c++17 -Xcompiler "/std:c++17 "
然后单击 "应用" 再重新构建。 - Robert Crovella