boost::filesystem::path
はsee demo、パス文字列中に引用符をエスケープする&
を使用しています。boost :: filesystem :: pathとstd :: filesystem :: pathのパスエスケープ文字が異なるのはなぜですか?
std::cout << boost::filesystem::path("/R&D/Project \"boost\"") << std::endl;
プリント"/R&&D/Project &"boost&""
。ただし、std::filesystem::path
の場合I see thisの場合:
パスpでストリーム入力または出力を実行します。 std :: quotedは、後でストリーム入力演算子で読み取るときにスペースが切り捨てられないように使用されます。ここで
std::quoted
からです:
脱出 - 私は
std::filesystem::path
が\
代わりの&
を使用することを伝えることができるエスケープ文字として使用する文字、デフォルトでこのことから
を\します。
これは間違いありませんか?はいの場合、委員会がこの行動を変更することを決めたのはなぜですか?
ボーナス質問:std::filesystem::path
の実装はありますか?最新のGCCとclangのどれもが<filesystem>
ヘッダを提供していないようです。
グレート、からの引用のためのおかげでそれを持っています!実験的には、成功していないオンラインコンパイラで試してみました。http://melpon.org/wandbox/permlink/nfZ88PnrttOGbEHuオンラインコンパイラの単なる問題かもしれません。 – Mikhail
@Mikhail Jonathanが[この回答](http://stackoverflow.com/a/33159746/4115625)で述べたように、あなたは '-lstdC++ fs'とリンクする必要があります。[this](http:// melpon .org/wandbox/permlink/75pJtT4K3dAgGT1i) – Danh
クール、ありがとう! – Mikhail