一连串的问题BOOST_FOREACH
促使我向Boost库的用户询问他们正在做什么(如果有的话)准备他们的代码以便移植到提议的新C++标准(又名C++ 0x).例如,如果您使用shared_ptr
以下内容,您是否编写了这样的代码:
#ifdef CPPOX #include#else #include "boost/shared_ptr.hpp" #endif
还有命名空间问题 - 将来,shared_ptr
它将成为std
命名空间的一部分- 你如何处理它?
我对这些问题感兴趣,因为我决定咬紧牙关并认真开始学习提升,我想在我的代码中使用最佳实践.
不完全是大量答案 - 这是否意味着它不是问题?无论如何,感谢那些回复的人; 我接受了jalfs的回答,因为我喜欢被建议什么都不做!
简单的答案是"什么都不做".Boost不会删除被采用为0x的库.所以boost :: shared_ptr仍然存在.因此,您无需执行任何操作来保持可移植性.
当然,一旦0x在这里,很多代码可以简化,清理和优化,但由于它还没有在这里,这项工作无法真正开始.所有你能做的就是确保你的代码在0x命中时仍然可以编译......它应该就像那样.Boost不会删除一半的库.(我不是猜测.他们之前在他们的邮件列表上说过这个)
(如果你想切换到标准的shared_ptr,我会说这是可能更容易只是做一个简单的查找/替换在时机成熟时,更换#include
同#include
,并boost::shared_ptr
用std::shared_ptr
)
或者当然,您可以决定使用Boost的项目shared_ptr
.毕竟,仅因为它被添加到标准库并不意味着你必须使用它.