コンパイル時に処理を切り替えたい場合に使用。Strategyパターンでは継承により処理を切り替えるが、こちらはテンプレートパラメーターで処理を切り替える。以下のサンプルコードは上述のLINK先のStrategyパターンのをもじって書いた。複数の特徴(戦略)をクラスに持たせる場合はこちらのほうが継承を使ったものよりもメンテの手間がはぶけてよい(継承を使うと全ケースの組み合わせを継承を使って書かねばならないので大変) #include<string> #include<iostream> #include <vector> #include <algorithm> using namespace std; //ポリシークラスを呼ぶための箱 template<class Policy> class MaxSearchStrategy { public : void Execute(const v