C++命名空间 - "使用"还是明确声明?

Maw*_*awg 6 c++ coding-style namespaces

可能重复:
为什么'using namespace std;' 在C++中被认为是一种不好的做法?
使用std命名空间

这只是一个偏好问题吗?或者是否有合理的理由

using namespace std;
#include <string>
myString string;
Run Code Online (Sandbox Code Playgroud)

要么

#include <string>
myString std::string;
Run Code Online (Sandbox Code Playgroud)

我想每次显式声明命名空间,而拖动键入,避免任何名称冲突的可能性(或编译器是否会警告歧义?)

问题:这种或那种方式存在令人信服的争论吗?