新コンパイルタイム・ポリモーフィズム(Metafunctionが要る場合)

  • メンバあるいはtag dipatchを使ったカスタマイズ
  • boost::result_ofのカスタマイズにtag dispatchを付けた形に近くなった
  • ADLは使わない
    • Metafunctionをspecializeするために、どうしても名前空間を開くことになるから
  • enumerateがそのまま例になってます