templateの概念からTMPの応用まで ref: http://qiita.com/minamiyama1994/items/1b1b72d6c8a0aa61c6f6