一旦成为标准的一部分 - 将提升库失去其boost命名空间并将被移动到std?

时间:2010-11-20 08:15:47

标签: c++ boost c++11 standards

一旦Boost库(我读过十个Boost库被认为是标准库的一部分)成为标准库的一部分 - 它是否会保留它的boost命名空间,或者代码将以std结尾命名空间?

如果是后一种情况 - 您将如何解决代码中潜在的命名空间冲突。

干杯。

1 个答案:

答案 0 :(得分:11)

Boost库中符合标准的项目当然会包含在名称空间std中。但是,我不认为它们的Boost对应物会以任何方式改变:如果我们以bind为例,编译C ++ 0x的人将使用std::bind,而编译C ++ 03的人将会继续使用boost::bind

我可能错了,但根据我的理解,来自boost库的概念使其成为标准,而不是精确规范。据我所知,boost::bind可以很好地不断发展并在某些时候提供与std::bind不同的东西(地狱,我还没有读过C ++ 0x标准,所以我没有答案,但std::bind可能已经与boost::bind不同了!)。

这里的命名空间冲突没有问题:每个库都有自己的命名空间,你可以在同一个C ++ 0x项目中使用std::bindboost::bind