26 #ifndef MLN_FUN_INTERNAL_SELECTOR_HH
27 # define MLN_FUN_INTERNAL_SELECTOR_HH
34 # include <mln/core/concept/function.hh>
35 # include <mln/metal/unqualif.hh>
48 template <
typename R,
typename A,
typename E>
49 struct helper_selector_
51 typedef Function_v2v<E> ret;
54 template <
typename A,
typename E>
55 struct helper_selector_< bool, A, E >
57 typedef Function_v2b<E> ret;
61 template <
typename R_,
typename A_,
typename E>
64 typedef mlc_unqualif(R_) R;
65 typedef mlc_unqualif(A_) A;
66 typedef typename helper_selector_<R, A, E>::ret ret;
71 template <typename R_, typename E>
72 struct selector_from_result_ : selector_< R_,
void, E >
75 selector_from_result_();
85 #endif // ! MLN_FUN_INTERNAL_SELECTOR_HH