12

一旦 C++0x 成为主流,boost 的重叠部分会发生什么?

boost 是否仍会包含以前的所有内容,或者他们是否会调整库以使用新的 std:: 内容对其进行更新?

boost 会同时拥有正常的 c++ 版本和他们将维护的 c++0x 版本吗?

4

4 回答 4

11

出于几个原因,人们希望Boost 继续支持现有的类。

首先,有一段代码使用了 Boost 中的重叠特性,需要在一段时间内得到支持。

其次,重叠的实现允许我选择我更喜欢使用哪一个。std::Frob 和 Boost::Frob 之间可能存在一些对我的项目很重要的区别,并且有一个选择是好的。

不过,从长远来看,我希望应用程序编写者和工具提供者都向标准迁移。这使得使用 std:: 成为一个风险较小的选择。

于 2009-01-01T17:42:29.030 回答
3

我不隶属于 Boost,也不知道他们会做什么,但似乎 Boost 不会受到影响。

已经发布了 TR1(VS 2008 功能包)并且 Boost 保持不变。由于许多用户尚未采用 Boost 或 TR1,我的预测是至少在未来五年内,boost 和 c++0x 库将存在于不同的命名空间中,并且可供 C++0x 用户和 C++ 用户使用。

于 2009-01-01T17:30:22.110 回答
1

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.

于 2009-01-11T01:43:03.577 回答
0

你是说tr1吗?

Boost 已经支持 tr1。boost 中所有被 std::tr1 采用的类都可以在 boost 的这个命名空间中使用。请参阅以下文档。

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

于 2009-01-01T20:58:53.923 回答