テンプレートの明示的特殊化と部分特殊化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/04/29 08:08 UTC 版)
「テンプレート (プログラミング)」の記事における「テンプレートの明示的特殊化と部分特殊化」の解説
「テンプレートの部分特殊化」も参照 テンプレートの明示的特殊化 (explicit specialization) は、テンプレート引数について、特定の型に対する明示的個別実装を可能とする機能である。テンプレートの明示的特殊化は、特定の形式に最適化できるようにすることと、コード肥大化の削減に役立てることという2つの目的がある。 例としてsort()関数テンプレートについて考える。このような関数の動作は第一にコンテナの特定位置の2つの値を入れ替えまたは交換することである。値が多い場合(各要素を格納するためにメモリを消費するという点で)、オブジェクトへのポインタのリストを先に構築し、それらのポインタをソートして、最終的なソートされたシーケンスを構築するのが多くの場合で高速である。値が非常に少なければ単純に必要に応じて値をスワップで置き換えるのが最も速い[要出典]。しかしさらにパラメータ化された型がポインタ型である場合はポインタの配列を構築する必要がない。テンプレートの明示的特殊化はテンプレートの実装者が複数の異なる実装を記述することを可能にし、パラメータ化された型が各実装で利用されるべき特徴を指定できるようにする。 テンプレートの部分特殊化 (partial specialization) は、テンプレート仮引数の一部を特殊化するものである。明示的特殊化と異なる点は、特殊化されず抽象化されたままのテンプレート仮引数を持つことである。
※この「テンプレートの明示的特殊化と部分特殊化」の解説は、「テンプレート (プログラミング)」の解説の一部です。
「テンプレートの明示的特殊化と部分特殊化」を含む「テンプレート (プログラミング)」の記事については、「テンプレート (プログラミング)」の概要を参照ください。
- テンプレートの明示的特殊化と部分特殊化のページへのリンク