Boost logo

Boost :

Subject: Re: [boost] [Filesystem] v3 path separator changes
From: Lars Viklund (zao_at_[hidden])
Date: 2013-03-22 13:01:53


On Fri, Mar 22, 2013 at 04:50:35PM +0000, Alexander Lamaison wrote:
> Alexander Lamaison <awl03_at_[hidden]> 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_at_[hidden]

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk