Replace typename decay<T>::type to decay_t<T>, same for result_of
make make_ready_future work with decaying types