多くの場合、コンパイラからのエラーは関連しています。たとえば、ブロックブレースを誤って一致させると、多くの識別子がスコープ外になる可能性があります。多くの場合、最初の原因が根本的な原因であり、残りを無視したくなります。この場合、重要なのは後のエラーであり、最初のエラーは明らかではありませんでした。
スタックをインクルードしなかったため、removeDup がコンパイラを混乱させ、最初に removeDup について不平を言いました。
追加した後、コードはうまくコンパイルされました:
#include <vector>
#include <algorithm>
前using namespace std;
これらのインクルードがない場合、これは gcc 4.2 (愚かな Mac) から得られるエラーです。
template.cpp:6: error: variable or field ‘removeDup’ declared void
template.cpp:6: error: ‘vector’ is not a member of ‘std’
template.cpp:6: error: expected primary-expression before ‘>’ token
template.cpp:6: error: ‘vec’ was not declared in this scope
最初の行は、次のものと非常によく似ています。
removeDup is not a function or static data member