将字符串转换为std文件系统路径

时间:2017-03-30 09:46:51

标签: c++ c++17

文件路径作为字符串传递。如何将此字符串转换为std::filesystem::path?例如:

#include <filesystem>

std::string inputPath = "a/custom/path.ext";
const std::filesystem::path path = inputPath; // Is this assignment safe?

1 个答案:

答案 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,那么真的很奇怪。