C++ソフト開発ツールのセオライザー

技術解説

  • HOME »
  • 技術解説

第15回 可変長引数のクラス・テンプレート例tuple

こんにちは。田原です。 可変長引数テンプレートとして関数テンプレートが良く使われるので、前回は関数テンプレートで解説しました。クラス・テンプレートも可変長引数テンプレートとして使えますので、今回はstd::tupleを使 …

第14回 結構便利な可変長引数テンプレート(Variadic templates)

こんにちは。田原です。 テンプレートの基本的な部分は概ね網羅しつつありますので、そろそろ当応用講座も終盤です。 さて、今回は可変長引数のテンプレートを解説します。再帰定義を使う場合も多く使い方は結構難しいですが、結構便利 …

第13回 関数テンプレート・パラメータの便利な特殊性

明けましておめでとうございます。本年もよろしくお願い申し上げます。 お久しぶりの田原です。去年から引き続いてテンプレートの解説を続けますね。 さて、今回は関数テンプレートのパラメータの型推論について少し補足します。関数テ …

第12回 ルールは単純だけど意外にややこしいメンバ・テンプレート

こんにちは。田原です。 クラスやクラス・テンプレートの中で定義するテンプレートのことをメンバ・テンプレートと呼び、関数テンプレートとクラス・テンプレートがあります。そして、クラス・テンプレートの中で定義するクラス・テンプ …

第11回 decltypeとstd::declval

こんにちは。田原です。 今回は、ちょっと複雑なテンプレートを書く時に便利なdecltypeとstd::declvalです。decltypは既にちらほらつかってますが受け取った式の型を返します。declvalはその逆っぽい …

第10回 メンバの有無を判定するテンプレート

こんにちは。田原です。 前回までで テンプレートの明示的特殊化と部分的特殊化とオーバーロード(まとめて表現できる言葉が欲しいですね)を使って必要に応じて異なるテンプレートを定義する方法を解説しました。今回はその応用を1つ …

第9回 部分特殊化チックな関数テンプレートのオーバーロード

こんにちは。田原です。 前回はクラス・テンプレートの少し高度な部分特殊化の方法を解説しました。今回はこれの関数テンプレート版を解説します。とは言っても関数テンプレートには部分特殊化はありません。その代わりオーバーロードが …

第8回 長い長い部分的特殊化をエイリアス・テンプレートでちょっと短く

こんにちは。田原です。 前回はクラス・テンプレートの部分特殊化で複雑な指定を行うための原理的な話を解説しました。うまく組み合わせることで多少複雑な処理でも記述できます。しかもコンパイル時処理なので超高速(実行時間が0)で …

第7回 部分的特殊化で便利な標準ライブラリの仕組みとその使用例

こんにちは、田原です。 前回は部分的特殊化する際によく使われる部品と、それらを使った部分特殊化の例を1つ上げました。そして、実はC++11以降、標準ライブラリ<type_traits>で非常に多数の便利な部品 …

第6回 部分的特殊化で良く使う部品とSFINAEの利用方法

こんにちは。田原です。 クラス・テンプレートの部分特殊化や関数テンプレートのオーバーロードはある程度範囲の型に対してテンプレートを定義します。その「範囲」をかなり自由に指定することができます。今回はそれによく使われる幾つ …

« 1 2 3 4 9 »
PAGETOP
Copyright © Theoride Technology Co.,Ltd. All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.