boost :: filesystem添加引号?

Dev*_*lar 5 c++ boost boost-filesystem

使用boost_filesystem时,Boost会不断为文件名添加引号.

Foo.cpp中:

#include <iostream>
#include <boost/filesystem.hpp>

int main( int argc, char * argv[] )
{
    std::cout << argv[0] << std::endl;
    boost::filesystem::path p( argv[0] );
    std::cout << p << std::endl;
    std::cout << p.filename() << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译:

g++ foo.cpp -o foo -lboost_filesystem -lboost_system
Run Code Online (Sandbox Code Playgroud)

输出:

./foo
"./foo"
"foo"
Run Code Online (Sandbox Code Playgroud)

这有些出乎意料,在我的情况下不方便.这是真的故意,还是我在这方面有点老版本的Boost(1.46.1)车?有什么方法可以避免它们被添加?

我仔细阅读了文档,但除了在示例输出中没有显示引号的教程之外,我没有开悟.

fre*_*rik 6

这实际上是版本1.47.0上Boost框架上提交的错误.

建议的解决方法是:

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