部分特殊化とは? わかりやすく解説

部分特殊化

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 16:54 UTC 版)

テンプレートの部分特殊化」の記事における「部分特殊化」の解説

部分特殊化は、複数の型にまたがって影響を及ぼすようになった明示的特殊化であると言えるtemplatestruct get_iterator{ typedef typename Container::iterator type;}; このコード例えば、次のように用いる。 using std::string;string s = "abc";get_iterator::type it = std::find(s.begin(), s.end(), 'a'); ここで、次のような部分特殊化を導入するtemplatestruct get_iterator{ typedef T* type;}; get_iteratorの後ろという記述で、コンパイラはこれが部分特殊化だと認識する。これによって、次のように配列に対してもget_iteratorが使用可能になるconst int MAX = 10;int a[MAX] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};get_iterator::type it = std::find(a, a + MAX, 5); int[MAX]だけでなく、const char[80]やstd::complex[4]などT[N]の形に一致するであればいずれも部分特殊化版のget_iteratorが使用されるこのように、どの一次テンプレート明示的特殊化・部分特殊化を使用するかはパターンマッチ的に決定されるテンプレートの部分特殊化可能なのはクラステンプレートのみである。関数テンプレートは部分特殊化できず、明示的特殊化のみ可能である。しかし多く場合関数テンプレートの部分特殊化多重定義によって代用できる

※この「部分特殊化」の解説は、「テンプレートの部分特殊化」の解説の一部です。
「部分特殊化」を含む「テンプレートの部分特殊化」の記事については、「テンプレートの部分特殊化」の概要を参照ください。

ウィキペディア小見出し辞書の「部分特殊化」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「部分特殊化」の関連用語

部分特殊化のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



部分特殊化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのテンプレートの部分特殊化 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS