テンプレート パラメーターの 'class' と 'typename' の選択を決定する
C テンプレート定義では、' を使用するかどうかという問題が生じます。テンプレートパラメータの場合は「class」または「typename」。この記事は、これらの選択の背後にある意味と根本的な理由を包括的に理解することを目的としています。
元々、キーワード「クラス」は、テンプレート内の型を指定するために Stroustrup によって導入されました。これは、クラスの導入を避ける目的でした。新しいキーワード。しかし、一部の委員会メンバーは、「class」が既に型宣言を示しているため、そのオーバーロードによる混乱の可能性について懸念を表明しました。
これに対処するために、委員会は、特に指定された新しいキーワードとして「typename」を導入しました。テンプレートの種類を指定します。この動きは、構文上の曖昧さを減らし、開発者をより正確で直感的なアプローチに導くことを目的としていました。ただし、「class」は下位互換性を確保するために以前の機能を保持していました。
その結果、「class」と「typename」はどちらも C でテンプレート パラメータを定義するための有効なオプションであり、交換可能なキーワードとして機能します。混乱を避けるために「typename」を好む開発者もいるかもしれませんが、伝統を維持して「class」に固執する開発者もいるかもしれません。最終的に、「class」と「typename」のどちらを選択するかは個人的な好みの問題であり、重大な技術的な影響はありません。
C 17 より前は、「class」がテンプレート テンプレート パラメーターの要件であったことは注目に値します。 。ただし、C 17 の導入により、テンプレート タイプのより一貫した構文に合わせて、このコンテキストでも「typename」が推奨されるオプションになりました。
以上がテンプレートパラメータの「class」または「typename」: いつどちらを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。