文件路径作为字符串传递。如何将此字符串转换为std::filesystem::path?例如:
#include <filesystem>
std::string inputPath = "a/custom/path.ext";
const std::filesystem::path path = inputPath; // Is this assignment safe?
答案 0 :(得分:10)
是的,这个构造是安全的:
const std::filesystem::path path = inputPath; // Is this assignment safe?
这不是赋值,即复制初始化。您正在调用此constructor:
template< class Source >
path( const Source& source );
需要:
构造路径,从source(4)提供的字符序列,它是指针或输入迭代器到以null结尾的字符/宽字符序列,
std::basic_string
或std::basic_string_view
,
所以你很好。另外,如果你不能从filesystem::path
构建std::string
,那么真的很奇怪。