关于c ++:如何避免shared_ptr歧义?

How to avoid shared_ptr ambiguity? (stl vs boost)

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Why is ‘using namespace std;’ considered a bad practice in C++?

我在代码中使用了stlshared_ptr很多地方,在我使用shared_ptr的任何地方都使用了以下using语句:

1
using namespace std::tr1;

现在我需要使用boost::bimap。因此,我必须在代码中包含以下头文件:

1
#include <boost/bimap.hpp>

只要我包含bimap头文件,shared_ptr类型就变得模糊,我必须将shared_ptr的所有用法更改为std::tr1::shared_ptr。因为这会使我的代码变得丑陋,所以我正在寻找一种避免这种歧义的方法,而不需要在任何地方用完全限定的名称声明shared_ptr。我本来想用typedef来代替std::tr1::shared_ptr,但也许还有更好的方法。任何建议都将不胜感激!


只是不要介绍它。避开一般的using namespace ...


下面怎么样?

1
using shared_ptr = std::tr1::shared_ptr;

但是,正确的答案是不使用using namespace ...语句,或者只使用它来创建名称空间别名。

顺便问一下,你知道EDCOX1的2个字是不是过时了,因为去年C++ 11变成标准化了?