tags:

views:

514

answers:

4

what will happen with the overlapping portion of boost once C++0x becomes mainstream?

Will boost still contain everything it used to, or will they adapt the library to update it with the new std:: stuff?

Will boost have both a normal c++ version and a c++0x version that they will maintain?

+3  A: 

I am not affiliated with Boost and have no they idea what they will do but it seems like Boost will be left untouched.

There already has been released TR1 (VS 2008 feature pack) and Boost was left untouched. Since many users have not adopted Boost or TR1 yet, my prediction is that for at least next five years boost and c++0x libraries will exist in different namespaces and availaible for C++0x users as well as C++ users.

mannicken
If you think that the boost library would change because _one_ compiler added overlapping functionality -- 'nuff said. Read what compilers 1.37 was tested with at http://www.boost.org/users/download/version_1_37_0
gnud
+11  A: 

One would hope that Boost continues to support existing classes, for a couple of reasons.

First, there is a body of code that uses the overlapping features in Boost that needs to be supported, for some time.

Second, overlapping implementations allow me to select which one I'd prefer to use. There might be some difference between std::Frob and Boost::Frob that is important to my project, and having a choice is good.

In the long term, though, I would expect a migration toward the standard from both the application writers and the tools providers. That makes it a less risky choice to go with std::.

Paul Beckingham
I think it might be annoying for the interface into the boost functions to be not std::
Brian R. Bondy
also there are many compilers not supporting everything of boost immediately. even if they get std::bind , it misses some of the features of boost::bind
Johannes Schaub - litb
This is exactly why namespaces were added - so code can coexist.
Paul Beckingham
A: 

Do you mean tr1?

Boost already supports tr1. All the classes from boost that have been adopted into std::tr1 are available in this namespace from boost. See the following documentation.

http://www.boost.org/doc/libs/1_37_0/doc/html/boost_tr1.html

Martin York
+1  A: 

Namespaces make this somewhat of a non-issue for the Boost developers. There is no direct contention between the boost libraries and the standard libraries because they exist in separate namespaces. Therefore, changes to namespace std (for example the addition of std::tr1) have no direct impact on Boost.

Note however, that if you are importing both libraries (std and boost) into the global namespace, then you will have issues.

The following quote from the Boost TR1 documentation also sheds some light regarding Boost's implementation of TR1 components, suggesting that the corresponding Boost library will be maintained for the foreseeable future:

The TR1 library provides an implementation of the C++ Technical Report on Standard Library Extensions. This library does not itself implement the TR1 components, rather it's a thin wrapper that will include your standard library's TR1 implementation (if it has one), otherwise it will include the Boost Library equivalents, and import them into namespace std::tr1.