如何格式化不带引号的增强路径对象?

mar*_*ark 4 c++ boost path

这是我的代码:

fs::path datadir = ...;
std::string dataDirOption((boost::format("--datadir=%1%") % datadir).str());
Run Code Online (Sandbox Code Playgroud)

对于datadir=="c:/db"我来说dataDirOption=="--datadir=\"c:/db\"",而不是"--datadir=c:/db"

boost::filesystem::path格式化时是否可以告诉跳过引号?

现在,我知道我可以代替datadir.string()datadir,摆脱这样的报价,但我想知道我是否可以这样做,没有额外的字符串。

谢谢。

fre*_*rik 5

不,不是,这是Boost Framework版本1.47.0上的错误文件,尚未确定何时修复。

但是,解决方法是:

std::cout << path("/foo/bar.txt").filename().string()
Run Code Online (Sandbox Code Playgroud)