可以放"使用std :: swap;" 在标题?

Dan*_*Dan 7 c++ namespaces argument-dependent-lookup

我已经读过,当你使用swapc ++时,你应该总是using std::swap;,然后调用swap不合格,所以它会自动选择std::那些std::和内置类型,自定义类型的自定义类型,以及std::其他所有类型的模板类型.

那么,我可以只放入using std::swap;每个文件包含的标题而不必担心它吗?

我明白避免using在标题中是常见的做法.但是,在这种特殊情况下它有问题吗?

Mar*_*k B 7

交换指南是尽可能using std::swap 在本地范围内进行的.可以肯定的是,广泛包含的头文件中的一个不符合此要求.它仍然以意想不到的方式污染全局命名空间(有人不期望std::swap将其导入全局命名空间),应该避免使用using namespace.