Почему я не должен помещать «using namespace std» в заголовок?

Кто-то однажды намекнул, что делать это в заголовочном файле не рекомендуется:

using namespace std;

Почему это не рекомендуется?

Может ли это привести к ошибкам компоновщика, например так:

error LNK2005: "public: __thiscall std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> >::
~basic_string<char,struct std::char_traits<char>,class std::allocator<char> > 
(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) 
already defined in tools.lib(Exception.obj) 

Ответы на вопрос(2)

Ваш ответ на вопрос