総称型の型推論とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 総称型の型推論の意味・解説 

総称型の型推論

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/29 09:09 UTC 版)

型推論」の記事における「総称型の型推論」の解説

C++では、関数テンプレートに対してテンプレート実引数具体的な型名)を明示的に与えて型を決定するともできるが、曖昧さない場合限り関数呼び出し実引数に応じて型を推論させることもできる。 #include #include template T getVectorLength(T x, T y, T z) { return std::sqrt(x * x + y * y + z * z); // std::sqrt() には double あるいは float受け取オーバーロード存在する。}int main() { const double len1 = getVectorLength(1, 2, 3); // double getVectorLength(double, double, double) const float len2 = getVectorLength(1.0f, 2.0f, 3.0f); // float getVectorLength(float, float, float) std::cout << len1 << std::endl; std::cout << len2 << std::endl;} テンプレート仮引数Tを持つ関数テンプレートにおける仮引数の型宣言が、参照T&あるいはポインタT*であったり、ユニバーサル参照T&&であったりする場合は、推論結果として定まる型が異な場合もある。 C++17ではクラステンプレートのテンプレート引数推論するともできるようになったtemplate struct Vector3 { T x, y, z; Vector3(T ax, T ay, T az) : x(ax), y(ay), z(az) {}};int main() { Vector3 v1(1.0, 2.0, 3.0); // C++03 以前でも利用可能な、従来コンストラクタ呼び出しによる実体化。 Vector3 v2 { 1.0, 2.0, 3.0 }; // C++11 以降uniform initialization使用した実体化。 Vector3 v3(1.0, 2.0, 3.0); // C++17 以降でのみ有効。Vector3推論される。 Vector3 v4 { 1.0, 2.0, 3.0 }; // 同上。} Javaバージョン5.0以降にてメソッドスコープの型変数推論する機能を持つ。 // 型推論用いない書き方List list1 = Collections.emptyList();// 型変数へのバインド型推論用いた書き方List list2 = Collections.emptyList(); その他、Java 7 からは型変数を持つクラスnewする場合バインドすべき型を推論するダイヤモンド演算子という機能を持つ。 // 型推論用いない書き方List list1 = new ArrayList();// ダイヤモンド演算子による型推論List list2 = new ArrayList<>();

※この「総称型の型推論」の解説は、「型推論」の解説の一部です。
「総称型の型推論」を含む「型推論」の記事については、「型推論」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「総称型の型推論」の関連用語

1
8% |||||

総称型の型推論のお隣キーワード
検索ランキング

   

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



総称型の型推論のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS