boost_filesystemを使用している場合、Boostはファイル名に引用符を追加し続けます。boost :: filesystem引用符を追加しますか?
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)バグですか?私はそれらが追加されることを避けることができるいくつかの方法はありますか?
私はマニュアルを精読しましたが、チュートリアル以外にも、では引用符が表示されていましたが、私は啓発されませんでした。
まあ、私は私がよく引用符を自分で追加することができます埋め込まれたスペースのが怖い場合。 *ログ出力でファイル名を使用する前にそれらを削除しなければならないのは厄介です - そして、 'replace_all()'は本当に助けになりません。脳死です。埋め込み*引用符*ファイル名にも。 ;-) – DevSolar
しかし、あなたはバグレポートが示唆していることをすることができます:std :: cout << p.filename()。string()<< std :: endl; –
私が前にアップ/回答した前に、完了し、テストされ、コミットされました。 ;-) – DevSolar