为什么getline()来自本地范围内的头字符串并且可以使用:
#include <iostream>
#include <string>
int main() {
std::string str;
getline(std::cin, str);
std::cout << str << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这适用于gcc.但为什么?它在头字符串中定义,它应该要求我使用std :: getline()而不是getline().
您正在体验Argument Dependent Lookup(ADL,也称为Koenig Lookup).由于一个或多个参数是在std命名空间中定义的类型,因此std除了搜索其他任何地方外,它还会在命名空间中搜索该函数.我指向Stephan T. Lavavej的视频,以了解更多关于它和名称查询的信息.
| 归档时间: |
|
| 查看次数: |
1584 次 |
| 最近记录: |