
On Wed, Jun 2, 2010 at 1:37 PM, Scott McMurray <me22.ca+boost@gmail.com> wrote:
On 2 June 2010 11:07, Beman Dawes <bdawes@acm.org> wrote:
Because version 3 will break some user code, both v2 and v3 will be shipped for several releases. For 1.44, the default is v2 and the user has to explicitly switch to v3.
I notice that you have to rebuild boost.filesystem when switching versions. Does that mean that you can't use both from one install of boost?
That's correct.
I would have assumed that there's be filesystem_v2 and filesystem_v3 include directories, namespaces, and libraries. The filesystem directory would look at a #define to pick which headers to include and which namespace to mention in a using directive.
Anything like that I could think of seemed more work that it is worth. Much existing code, I suspect, will compile unchanged on v3. If it turns out there is lots of existing code that won't "just work" on V3, I want to find out the details before deciding on a course of action. It may be that v3 needs modifications.
The switching code would simply change the default of the #define and symlink the appropriate library.
I considered a symlink approach, but that's a problem on some platforms.
My thinking here is that I'd like to be able to install boost on my system, have old code pick up the v2 default, but still be able to use v3 explicitly in new code, should I so choose.
That would make a lot of sense if it turns out there is a lot of v2 based code that won't work with v3. Particularly code that isn't trivial to change to work with v3. So let me know if you are running into a lot of problems when you try your existing code. --Beman