モジュール 8 · レッスン 1 / 2コース内の 17/18~12 min
モジュールのレッスン (1/2)
関数テンプレート
テンプレートを使用すると、C++ で汎用コードを作成できます。テンプレートを通じて、ジェネリック型パラメーターを操作する関数またはクラスを定義し、要求された特定の型の実際のコードをコンパイラーに生成させることができます。
関数テンプレートの定義
関数テンプレートを定義するには、関数定義の前に template キーワードを置き、その後に山括弧 <> で囲まれた型パラメーターのリストを続けます。一般に、typename または class は、ジェネリック型の宣言に使用されます。
C++
// T is the generic type parameter
template <typename T>
T add(T a, T b) {
return a + b;
}関数呼び出しとテンプレート引数の推定
関数を呼び出すときに、山括弧で型を明示的に指定できます。
C++
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);ただし、C++ コンパイラは通常、渡された入力パラメータから自動的に型を**推定できます (テンプレート引数推定)。
C++
int res1 = add(5, 10); // The compiler deduces that T is int自分で試してみてください
運動#cpp.m8.l1.e1
試行回数: 0読み込み中…
ジェネリック型 T の 2 つのパラメーターを受け取り、2 つの大きい方を返す myMax という名前の関数テンプレートを定義します。
エディターを読み込み中…
ヒントを表示
まず、`template <typename T>` を記述し、その後に署名 `T myMax(T a, T b)` を記述します。
3 回の試行後に解決策が利用可能になります
運動#cpp.m8.l1.e2
試行回数: 0読み込み中…
異なるジェネリック型 T1 および T2 の 2 つのパラメーターを受け取り、std::cout を使用してスペースで区切られた 2 つの引数を出力する printPair という名前の関数テンプレートを作成します。
エディターを読み込み中…
ヒントを表示
テンプレート宣言では、2 つのパラメータ `template <typename T1, typename T2>` を指定する必要があります。
3 回の試行後に解決策が利用可能になります