C 構文エラーを解決する方法: 「'<' トークンの前に修飾されていない ID が必要です」
C言語の開発では、さまざまなエラーに遭遇することがよくあります。よくあるエラーの 1 つは、「'<' トークンの前に修飾されていない ID が必要です」です。このエラーは通常、識別子がどこかに欠落しているが、コンパイラが「<」記号を見つけたことを意味します。このエラーは、テンプレートまたは汎用プログラミングを使用する場合によく発生します。
この記事では、この構文エラーを特定して解決する方法について説明し、一般的なエラーの例をいくつか示します。
1. エラーの理由
通常、「'<' トークンの前に修飾されていない ID が必要です」エラーは、次の 2 つの一般的な問題によって発生します。テンプレート パラメーターが欠落しています
テンプレート プログラミングを使用する場合は、適切なパラメーターをテンプレートに渡す必要があります。このエラーは、テンプレートにパラメーターが渡されない場合、または間違ったパラメーターが渡された場合に発生します。例 1: テンプレート パラメーターが欠落しています
template<class T> class MyClass { public: T value; }; int main() { MyClass<int> obj; // 正确用法:给模板传入适当的参数 MyClass obj2; // 错误用法:未给模板传入参数 obj.value = 10; return 0; }
を渡す必要があります。オブジェクト
obj を作成するときに、適切なパラメータ
をテンプレートに正常に渡しました。しかし、オブジェクト
obj2 を作成するときに、パラメータをテンプレートに渡しませんでした。この場合、コンパイラはエラーを報告し、「'<' トークンの前に非修飾 ID が必要です」というプロンプトを表示します。このエラーを解決するには、
などの適切なテンプレート パラメーターを
obj2 オブジェクトに渡すだけです。
例 1 の解決策:
MyClass<int> obj2; // 给模板传入适当的参数
例 2: セミコロンの欠落
#include <iostream> int main() { std::cout << "Hello World" << std::endl return 0; }
例 2 の解決策:
std::cout << "Hello World" << std::endl; // 添加分号
以上がC++ 構文エラーを解決する方法: 「'<' トークンの前に修飾されていない ID が必要です」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。