On Fri, Mar 22, 2013 at 04:50:35PM +0000, Alexander Lamaison wrote:
Alexander Lamaison
writes: I'm finally getting round to moving to Filesystem v3 and now my code is breaking all over the place. The cause is the output of string() on Windows which has changed behaviour.
I'm manipulating Unix paths for use over SFTP, but doing so on Windows. For instance I might want to append "c" to the Unix path "/a/b".
path p("/a/b"); p /= "c"; cout << p.string();
In version 2 this would output "/a/b/c" but now it produces "/a/b\c". Why the breaking change?
I'm trying to understand the rationale behind many of the v3 changes which [1] and [2] don't even begin to cover.
[1] http://www.boost.org/doc/libs/1_53_0/libs/filesystem/doc/v3.html [2] http://www.boost.org/doc/libs/1_53_0/libs/filesystem/doc/deprecated.html
Surely someone knows why Boost.Filesystem path behaviour changed so much between v2 and v3?
While it might not say so on the tin, Boost.Filesystem has never really been about handling any path format outside of the one that it thinks the current platform uses. Any such accidental alignment has been just that, accidental. If you want to model URIs, model foreign paths, or model VFS paths, it's most likely not the library you want to use. -- Lars Viklund | zao@acc.umu.se