Điều tôi nghĩ là for_each được định nghĩa trong không gian tên chuẩn, nhưng mã này thực sự biên dịch và chạy với các cờ trình biên dịch sau đây. Ai đó có thể giải thích tại sao?tại sao for_each hoạt động mà không cần std :: prefix
//@filename myprog.cpp
//g++-4.5 --std=c++0x myprog.cpp
#include<iostream>
#include<algorithm>
int main()
{
std::vector<int> v{1,2,3,4,5};
std::cout<<"printing the number\n";
for_each(v.begin(),v.end(),[](int num) {//no std::for_each
std::cout<<num<<"\t";
});
return 0;
}
tra cứu ADL - có rất nhiều câu hỏi trên trang web này (Truy vấn phụ thuộc đối số) – Nim
Tôi nghĩ điều này sẽ không thể di chuyển được. Tôi biết bạn chỉ tò mò, nhưng tôi đề nghị sử dụng 'std ::' để được an toàn. –
Biên dịch và chạy trên trình biên dịch và thư viện chuẩn nào? –