C++ 構文エラーを解決する方法: 「'<' トークンの前に初期化子が必要です」?

WBOY
リリース: 2023-08-25 18:30:21
オリジナル
3245 人が閲覧しました

如何解决C++语法错误:\'expected initializer before \'<\' token\'?

C 構文エラーを解決する方法: 「'<' トークンの前にイニシャライザが必要です」

C プログラミングでは、さまざまなエラーが頻繁に発生します。よくあるエラーの 1 つは、「'<' トークンの前に初期化子が必要です」です。このエラーは通常、テンプレート クラスまたはテンプレート関数を使用するときに発生するため、特定の構文の詳細に注意する必要があります。この記事では、このエラーの原因とその修正方法について説明します。

まず、このエラーをよりよく理解するためにコード例を見てみましょう:

template <typename T>
void PrintVector(vector<T> vec) {
    for (const auto& elem : vec) {
        cout << elem << " ";
    }
    cout << endl;
}

int main() {
    vector<int> myVector = {1, 2, 3, 4, 5};
    PrintVector<int>(myVector);
    return 0;
}
ログイン後にコピー
ログイン後にコピー

上記のコードでは、ベクトル オブジェクトを受け入れ、その要素を印刷するテンプレート関数 PrintVector を定義します。 main 関数では、整数を含むベクトル オブジェクトを作成し、それを PrintVector 関数に渡します。ただし、このコードをコンパイルしようとすると、「'<' トークンの前にイニシャライザが必要です」というエラー メッセージが表示されます。

このエラーの原因は、コンパイラが「<」記号を認識しないことです。これは、C コンパイラがデフォルトで「<」をテンプレート パラメータ リストの一部ではなく比較演算子として解釈するためです。したがって、「<」がテンプレート パラメーター リストの一部であることをコンパイラーに伝える方法が必要です。

このエラーを解決するのは非常に簡単で、テンプレート関数の後の「<」記号の前にキーワード「テンプレート」を追加するだけです。修正されたコードは次のとおりです。

template <typename T>
void PrintVector(vector<T> vec) {
    for (const auto& elem : vec) {
        cout << elem << " ";
    }
    cout << endl;
}

int main() {
    vector<int> myVector = {1, 2, 3, 4, 5};
    PrintVector<int>(myVector);
    return 0;
}
ログイン後にコピー
ログイン後にコピー

ここで、「<」がテンプレート パラメータ リストの一部であることをコンパイラに伝えるために、「template」キーワードを追加しました。これにより、コンパイラはコード内のテンプレート タイプを正しく識別できるようになります。

エラーを修正した後、コードを再コンパイルすると、期待どおりの出力が得られます。これは、C 構文エラー「'<' トークンの前に初期化子が必要です」を解決する方法です。

要約すると、C プログラミングで「'<' トークンの前に初期化子が必要です」というエラー メッセージが表示された場合、テンプレートの種類が正しく指定されていないことが原因である可能性があります。このエラーは、テンプレート関数またはテンプレート クラスの前に「template」キーワードを追加し、「<」記号がテンプレート パラメーター リストの一部として正しく解釈されるようにすることで解決できます。この記事が読者のこれらの一般的な C 構文エラーの解決に役立つことを願っています。

以上がC++ 構文エラーを解決する方法: 「'<' トークンの前に初期化子が必要です」?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!