Вопрос

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

I've used stl's shared_ptr many places in my code and I have used the following using statement anywhere that I have used shared_ptr:

using namespace std::tr1;

Now I need to use boost::bimap. So I have to include the following header file in my code:

#include <boost/bimap.hpp>

As soon as I include the bimap header file, the shared_ptr type becomes ambiguous, and I have to change all usages of shared_ptr to std::tr1::shared_ptr. Since this makes my code ugly, I am looking for a way to avoid this ambiguity without needing to declare shared_ptr everywhere with a fully qualified name. I was thinking of using typedef for std::tr1::shared_ptr, but maybe there are better ways too. Any advice would be appreciated!

Это было полезно?

Решение

simply do not introduce it. avoid the general using namespace ...

Другие советы

How about the following:

using shared_ptr = std::tr1::shared_ptr;

However, the correct answer would actual be to not use the using namespace ... statement, or only use it to create namespace aliases.

By the way, you know that std::tr1 is obselete since C++11 became standardised last year?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top