可能重复:
Why is ‘using namespace std;’ considered a bad practice in C++?
我在我的代码中使用了stl
的{{1}}个很多地方,并且我在shared_ptr
使用过的任何地方都使用了以下using
语句:
shared_ptr
现在我需要使用using namespace std::tr1;
。所以我必须在我的代码中包含以下头文件:
boost::bimap
只要我添加#include <boost/bimap.hpp>
标头文件,bimap
类型就会变得模棱两可,我必须将shared_ptr
的所有用法更改为shared_ptr
。由于这会使我的代码变得丑陋,我正在寻找一种避免这种歧义的方法,而无需在任何地方用完全限定的名称声明std::tr1::shared_ptr
。我在考虑将shared_ptr
用于typedef
,但也许有更好的方法。任何建议将不胜感激!
答案 0 :(得分:6)
根本就不介绍它。避免使用using namespace ...
答案 1 :(得分:5)
以下内容如何:
using shared_ptr = std::tr1::shared_ptr;
但是,正确的答案实际上是不使用using namespace ...
语句,或仅使用它来创建名称空间别名。
顺便说一下,你知道自从C ++ 11去年成为标准化以来,std::tr1
已经过时了吗?