boost::taar::awaitable_result — What T produces once awaited: U for awaitable<U, E>, otherwise T itself.
U
awaitable<U, E>
// In header: <boost/taar/core/is_awaitable.hpp> template<typename T> struct awaitable_result { // types typedef T type; };