我从升级#include <experimental/filesystem>
到#include <filesystem>
. 似乎该std::filesystem::path::wstring
方法没有返回与 in 相同的字符串experimental::filesystem
。我编写了以下包含输出结果的小测试程序。
#include <iostream>
#include <filesystem>
#include <experimental/filesystem>
namespace fs = std::filesystem;
namespace ex = std::experimental::filesystem;
using namespace std;
int main()
{
fs::path p1{ L"C:\\temp/foo" };
wcout << "std::filesystem Native: " << p1.wstring() << " Generic: " << p1.generic_wstring() << endl;
ex::path p2{ L"C:\\temp/foo" };
wcout << "std::experimental::filesystem Native: " << p2.wstring() << " Generic: " << p2.generic_wstring() << endl;
}
/* Output:
std::filesystem Native: C:\temp/foo Generic: C:/temp/foo
std::experimental::filesystem Native: C:\temp\foo Generic: C:/temp/foo
*/
根据https://en.cppreference.com/w/cpp/filesystem/path/string:
返回值
本机路径名格式的内部路径名,转换为指定的字符串类型。
该程序在 Windows 10 上运行,并使用 Visual Studio 2017 版本 15.8.0 编译。我希望本机路径名是C:\temp\foo
.
问题:这是一个错误std::filesystem::path
吗?