为什么使用for_each
作为全局函数可以与GCC一起使用?
我想如果我没有在我的命名空间中包含std命名空间,例如using namespace std;
然后所有std函数和类都必须以std::
作为前缀,但正如您所看到的,for_each
,begin
和end
显然都是坐在全局命名空间。
为什么?
#include <algorithm>
#include <iostream>
#include <vector>
int main(int argc, const char *argv[])
{
std::vector<int> v = { 1,2,3 };
// Shouldn't this need to be std::for_each?
// And std::begin and std::end??
for_each(begin(v), end(v), [](auto i){ std::cout << i << std::endl; });
return 0;
}
命令我跑去编译
$ g++ --version
g++ (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)
$ g++ what.cpp