此代码在最近的gcc和clang上编译:
#include <iterator>
#include <vector>
int main(int argc, char** argv)
{
std::vector<int> v(20);
fill(begin(v), end(v), 0);
return EXIT_SUCCESS;
}
但是肯定不应该。
我不需要std::fill(std::begin(v), std::end(v), 0);
吗?
有什么变化?为什么这些函数在全局名称空间中?