请考虑以下代码:
#include <algorithm>
int main() {
std::vector<int> v = {1,2,3};
max_element(v.begin(), v.end());
return 0;
}
使用gcc 7.2.0和clang ++ 3.9.1进行编译。我希望我需要编写std::max_element
,但似乎<algorithm>
中至少有一些函数在全局命名空间中 - 与C ++ 17标准的草案相对立,显示生活在名称空间std。
这里发生了什么?