【发布时间】:2009-01-01 17:16:03
【问题描述】:
一旦 C++0x 成为主流,boost 的重叠部分会发生什么?
boost 是否仍会包含以前的所有内容,或者他们是否会调整库以使用新的 std:: 内容对其进行更新?
boost 是否会同时拥有正常的 c++ 版本和他们将维护的 c++0x 版本?
【问题讨论】:
一旦 C++0x 成为主流,boost 的重叠部分会发生什么?
boost 是否仍会包含以前的所有内容,或者他们是否会调整库以使用新的 std:: 内容对其进行更新?
boost 是否会同时拥有正常的 c++ 版本和他们将维护的 c++0x 版本?
【问题讨论】:
出于几个原因,人们会希望 Boost 继续支持现有的类。
首先,有一段代码使用了 Boost 中的重叠功能,需要在一段时间内得到支持。
其次,重叠的实现让我可以选择我更喜欢使用哪一个。 std::Frob 和 Boost::Frob 之间可能存在一些对我的项目很重要的区别,并且有选择是好的。
不过,从长远来看,我希望应用程序编写者和工具提供者都向标准迁移。这使得使用 std:: 成为一个风险较小的选择。
【讨论】:
我不隶属于 Boost,也不知道他们会做什么,但 Boost 似乎不会受到影响。
已经发布了 TR1(VS 2008 功能包)并且 Boost 保持不变。由于许多用户尚未采用 Boost 或 TR1,我的预测是,至少在未来五年内,boost 和 c++0x 库将存在于不同的命名空间中,并且可供 C++0x 用户和 C++ 用户使用。
【讨论】:
命名空间使这对 Boost 开发人员来说不是问题。 boost 库和标准库之间没有直接的争用,因为它们存在于不同的命名空间中。因此,命名空间 std 的更改(例如添加 std::tr1)对 Boost 没有直接影响。
但是请注意,如果您将两个库(std 和 boost)都导入到全局命名空间中,那么您将遇到问题。
以下来自 Boost TR1 文档的引用也阐明了 Boost 对 TR1 组件的实现,表明相应的 Boost 库将在可预见的未来得到维护:
TR1 库提供了一个 C++技术的实现 标准库扩展报告。 这个库本身并没有实现 TR1 组件,而它很薄 将包含您的包装器 标准库的 TR1 实现 (如果有的话),否则它会 包括 Boost 库等价物, 并将它们导入命名空间 std::tr1。
【讨论】:
你是说tr1吗?
Boost 已经支持 tr1。 boost 中所有被 std::tr1 采用的类都可以在 boost 的这个命名空间中使用。请参阅以下文档。
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_tr1.html
【讨论】: