32 #include <boost/optional.hpp> 42 template<
typename T,
typename F>
45 template<
typename T,
typename F>
51 template<
typename MF,
typename F>
52 auto operator* (
const F& f,
const MF& value) -> decltype (
Fmap (value, f))
54 return Fmap (value, f);
65 static FmapResult_t<F>
Apply (
const boost::optional<T>& t,
const F& f)
auto operator*(const AF &af, const AV &av) -> decltype(GSL(af, av))
FmapResult_t< T, F > Fmap(const T &t, const F &f)
struct LeechCraft::Util::@2 Apply
boost::optional< Decay_t< ResultOf_t< F(T)>>> FmapResult_t
static FmapResult_t< F > Apply(const boost::optional< T > &t, const F &f)
auto Invoke(F &&f, Args &&...args) -> decltype(std::forward< F >(f)(std::forward< Args >(args)...))
typename InstanceFunctor< T >::template FmapResult_t< F > FmapResult_t