Как избежать неоднозначности shared_ptr? (STL против повышения)

Возможный дубликат:
Почему «использование пространства имен 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, но, может быть, есть и лучшие способы тоже. Любой совет будет принят во внимание!

5

Решение

просто не вводите это. избегать общего using namespace ...

5

Другие решения

Как насчет следующего:

using shared_ptr = std::tr1::shared_ptr;

Тем не менее, правильный ответ будет не использовать using namespace ... или использовать его только для создания псевдонимов пространства имен.

Кстати, вы знаете, что std::tr1 устарел с тех пор, как C ++ 11 стал стандартизированным в прошлом году?

5

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector