Возможный дубликат:
Почему «использование пространства имен std;» считается плохой практикой в C ++?
Я использовал stl
«s 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
за std::tr1::shared_ptr
, но, может быть, есть и лучшие способы тоже. Любой совет будет принят во внимание!
просто не вводите это. избегать общего using namespace ...
Как насчет следующего:
using shared_ptr = std::tr1::shared_ptr;
Тем не менее, правильный ответ будет не использовать using namespace ...
или использовать его только для создания псевдонимов пространства имен.
Кстати, вы знаете, что std::tr1
устарел с тех пор, как C ++ 11 стал стандартизированным в прошлом году?