プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

C++テンプレート

C++テンプレートテクニック 特殊化、部分特殊化

最近読んだ本だがあまり頭に入っていないようなので、読みなおして復習する。特殊化 template<typename T> bool equal(T x, T y){ return x==y; } //const char*特殊化 template<> bool equal(const char*x, const char*y){ return std::strcmp(x,y) == 0; } 部分特殊化 </typename>…

C++テンプレート完全ガイドの復習

内容的にはC++テンプレートテクニックと被ってる部分が多く、こちらのほうがより詳細に解説している。ただし、洋書の翻訳版なので表現がわかりにくい部分があったり、正誤表に載っていない表記ミス(アンダーバーがない等)があったり・・・。読みやすさでは…

C++テンプレートテクニック12章 C++0xにおけるテンプレート

C++0xにおけるテンプレート C++03の問題点を改善したバージョン。 連続した山括弧の問題改善(テンプレートの入れ子を書く時に演算子>>と評価されてしまう問題への対策) 関数テンプレートにおけるデフォルトテンプレート引数の拡張 ローカル型と無名型をテ…

C++テンプレートテクニック11章 Extension Member Function

ExtensionMemberFunctionについて書かれた章。 あるオブジェクトに対し変更を加えずにメソッドを追加する手法について書かれている。 C++では「.」のオーバーロードが出来ないので演算子「|」を再定義して代用する。 operator|を定義して「対象オブジェクト|…