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;
}

Составитель:

g++ foo.cpp -o foo -lboost_filesystem -lboost_system

Выход:

./foo
"./foo""foo"

Это несколько неожиданно и неудобно в моем случае. Это действительно преднамеренно, или в этом отношении моя старая версия Boost (1.46.1) содержит ошибки? Есть ли способ избежать их добавления?

Я просмотрел документацию, но кроме учебников не показывая эти кавычки в их примере вывода, я не был просветленным.

5

Решение

Это на самом деле ошибка подано в Boost Framework версии 1.47.0.

Предлагаемый обходной путь:

std::cout << path("/foo/bar.txt").filename().string()
6

Другие решения

Это преднамеренно, потому что неожиданные встроенные пробелы и запутывают связанный код Лучшее, что вы можете сделать, это:

boost::replace_all(yourquotedstring, "\"", "");

РЕДАКТИРОВАТЬ

Хотя, согласно эта ссылка, Вы можете попробовать что-то вроде:

std::cout << path("/foo/bar.txt").filename().string();
4

По вопросам рекламы [email protected]