28 #ifndef MLN_FUN_BINARY_PARAM_HH
29 # define MLN_FUN_BINARY_PARAM_HH
31 # include <mln/fun/binary.hh>
32 # include <mln/fun/param.hh>
40 template <
typename F,
typename Param,
typename Storage =
void,
typename E = F>
41 struct binary_param: binary<binary_param<F,Param,Storage>, E>
45 typedef Storage storage;
52 binary_param(
const U& param)
59 template <
typename F,
typename Param,
typename E>
60 struct parameter< binary_param<F,Param,void,E> >
66 template <
typename F,
typename Param,
typename Storage,
typename E>
67 struct parameter< binary_param<F,Param,Storage,E> >
70 typedef Storage storage;
75 return F::compute_param(u);
87 template <
typename F,
typename Param,
typename Storage,
typename E,
typename T1,
typename T2>
88 struct set_precise_binary_<mln::fun::binary_param<F,Param,Storage,E>, T1, T2>
90 typedef mln_trait_nbinary(F, T1, T2) ret;
100 #endif // ! MLN_FUN_BINARY_PARAM_HH