auto atama = [](){ return 1; };
auto mune = [](int i){ return "tekitou"; };
auto ude = [](moji s){ return true; };
auto asi = [](bool b){ return robo; };
auto robo = gattai() + atama + mune + ude + asi;
auto daimajin = robo();
って書けるようにしたいんだけど、テンプレートを黒魔術的に駆使してなんとかならないですか?

要は、a(b(c(d(e()))))っていう数珠繋ぎな呼び出しを、abcde = a + b + c + d + eって感じ
で事前に用意しておいて、abcde()で呼び出したいってことなんだけど・・・・・・・・・