2017年11月26日のブックマーク (1件)

  • 実践C++応用講座 第9回 部分特殊化チックな関数テンプレートのオーバーロード | Theolizer®

    こんにちは。田原です。 前回はクラス・テンプレートの少し高度な部分特殊化の方法を解説しました。今回はこれの関数テンプレート版を解説します。とは言っても関数テンプレートには部分特殊化はありません。その代わりオーバーロードがあります。それを使ってプライマリー・テンプレートをオーバーロードする手法で部分特殊化的な機能を実現できます。その定型パターンを解説します。(実は私、定形パターンは使えますが自由自在にオーバーロードを使えるかというとちょっと無理かも。やはりテンプレートは難しいです。) 1.まずは考え方から クラス・テンプレートは専用で「部分特殊化」する構文が使えました。同じように関数テンプレートを部分特殊化しようとしてもエラーになります。 template<typename tType> void foo(tType) { } template<typename tType> void fo

    実践C++応用講座 第9回 部分特殊化チックな関数テンプレートのオーバーロード | Theolizer®