本「Accelerated C++」(A. Koenig、B. Moo) (§8.2.2) からいくつかのサンプル コードを実行しようとしています。
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
template <class In, class X>
In find(In begin, In end, const X &x)
{
while (begin != end && *begin != x) {
++begin;
}
return begin;
}
int main()
{
vector<int> v;
v.push_back(5);
v.push_back(32);
v.push_back(42);
v.push_back(7);
cout << *find(v.begin(), v.end(), 42) << endl;
return 0;
}
find
関数は本では次のように表示されます。main
自分で書いた関数。
clang++ と g++ の両方がこれをコンパイルしません。find
私の関数が とあいまいさを導入したと彼らが不平を言っているようstd::find
です。ただし、コード内で使用したことはありませusing namespace::std;
ん。何が起きてる?using std::find;
std::find