ptr含糊不清? (stl vs boost)

可能重复:
为什么'使用名称空间标准;' 在C ++中被认为是不好的做法?

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

using namespace std::tr1;

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

#include <boost/bimap.hpp>

只要我包含bimap头文件, shared_ptr类型变得模糊不清,我必须将shared_ptr所有用法更改为std::tr1::shared_ptr 。 由于这会让我的代码变得丑陋,所以我正在寻找一种方法来避免这种不明确性,而无需使用完全限定的名称在任何地方声明shared_ptr 。 我正在考虑为std::tr1::shared_ptr使用typedef ,但也许有更好的方法。 任何意见,将不胜感激!


根本不要介绍它。 避免一般using namespace ...


以下内容如何:

using shared_ptr = std::tr1::shared_ptr;

但是,正确的答案实际上是不使用using namespace ...语句,或仅使用它来创建命名空间别名。

顺便说一下,自从C ++ 11在去年成为标准化以来,你知道std::tr1是obselete吗?

链接地址: http://www.djcxy.com/p/29783.html

上一篇: ptr ambiguity? (stl vs boost)

下一篇: C++: Questions about using namespace std and cout