在C ++中使用`using`还是避免使用?
由于ADL造成了语义上的细微差别,我通常应如何使用using?为什么?是否与情况有关(例如,标头为#included而源文件为d)? 另外,我该选择::std::还是std::? 命名空间级别using namespace: using namespace std; pair<string::const_iterator, string::const_iterator> f(const string &s) { return make_pair(s.begin(), s.end()); } 完全明确: std::pair<std::string::const_iterator, std::string::const_iterator> f(const std::string &s) { return std::make_pair(s.begin(), s.end()); } 命名空间级别的使用声明: using std::pair; using std::string; pair<string::const_iterator, string::const_iterator> f(const string &s) { return make_pair(s.begin(), s.end()); } 局部函数使用声明: std::pair<std::string::const_iterator, std::string::const_iterator> f(const std::string &s) { …