テンプレート テンプレート パラメーターについて
C の領域では、テンプレート テンプレート パラメーターが一部のプログラマーにとって課題となります。よくある誤解を払拭してみましょう:
誤解:
以下のコード スニペットでは、C が Z をテンプレート化されたパラメーターではなく別のテンプレート化されたクラスとみなすことを妨げているのは何ですか?
<code class="cpp">template<class T> class B {}; // Templated class template<template<class X> class Z = B> // Line in question class BB{};</code>
説明:
テンプレート テンプレート パラメーターは、通常のテンプレート タイプ パラメーターと同様に動作します。ただし、具体的な型は受け入れられません。代わりに、テンプレート自体を受け入れます。簡単に理解すると次のようになります。
この例では、構文 template が使用されます。クラス Z = B> 1 つのテンプレート パラメーター X を持つテンプレート クラスを予期するテンプレート型パラメーター Z を定義します。
テンプレート テンプレート テンプレート パラメーター (不可能)
テンプレート テンプレートに注意することが重要です。テンプレートパラメータは C では使用できません。これは、コンパイラーの実装を簡素化するために標準化委員会によって行われた設計上の決定です。
類似: 関数と関数ポインター
よりよく理解するために、関数と関数の類似点を描いてください。ポインタ:
同様に、テンプレート テンプレート パラメーターは、引数を受け入れるテンプレート (引数) を受け入れます。
例と使用例
テンプレート テンプレート テンプレート パラメーターは使用できませんが、これらが役立つ状況を想像してみましょう:
さまざまなタイプのスタックまたはキューで動作するアルゴリズムを備えた汎用グラフ検索ライブラリを作成したいとします。これらは、さまざまなコンテナ タイプで実装できます。テンプレート テンプレート テンプレート パラメーターを使用すると、単一の関数呼び出しでこれらすべての側面を指定できるようになります。ただし、テンプレート テンプレート テンプレート パラメーターは使用できないため、この使用例は架空の例のままです。
以上がC がテンプレート テンプレート テンプレート パラメータを処理できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。