だから…

template <class T> class Functor{
operator()(){/*関数の中身*/}
operator T() {} // などなど
}
とか演算子を定義すりゃーいいわけ。

実はあんまし自信がない。(w