一旦Boost库(我已经读过十个Boost库被认为是标准库的一部分)成为标准库的一部分 – 它是否会保留它的boost命名空间或代码最终会在std命名空间中?
如果是后一种情况 – 您将如何解决代码中潜在的命名空间冲突.
干杯.
解决方法
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 :: bind和boost :: bind.