>Op::Apply(l_[i], r_[i]); の型がvalu_typeの型そのものってことがわかってない
お前の言ってるそれは>>506そのもの

そういや俺operator +の特殊化とか書いてたけど
Applyの方だな
あとオーバーロードが抜けてた