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