28 #ifndef MLN_FUN_UNARY_PARAM_HH
29 # define MLN_FUN_UNARY_PARAM_HH
31 # include <mln/fun/unary.hh>
32 # include <mln/fun/param.hh>
40 template <
typename F,
typename Param,
typename Storage =
void,
typename E = F>
41 struct unary_param: unary< unary_param<F,Param,Storage,E>, E>
45 typedef Storage storage;
52 unary_param(
const U& param)
59 template <
typename F,
typename Param,
typename E>
60 struct parameter< unary_param<F,Param,void,E> >
66 template <
typename F,
typename Param,
typename Storage,
typename E>
67 struct parameter< unary_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 T>
88 struct set_precise_unary_<mln::fun::unary_param<F,Param,Storage,E>, T>
90 typedef mln_trait_nunary(F, T) ret;
100 #endif // ! MLN_FUN_UNARY_PARAM_HH