2626#include < cassert>
2727#include < limits>
2828#include < utility>
29+ #include < exception>
2930
3031#include < dispatch/dispatch.h>
3132#ifndef __OBJC__
@@ -316,7 +317,7 @@ inline namespace CO_DISPATCH_NS {
316317 }
317318
318319 template <class X =ValueCarrier>
319- static auto moveOutValue (X::ValueToken token) noexcept (IsNoExceptExtractable) -> T
320+ static auto moveOutValue (typename X::ValueToken token) noexcept (IsNoExceptExtractable) -> T
320321 requires(!ValueCarrier::isVoid && std::is_same_v<X, ValueCarrier>) {
321322 Holder & holder = *token;
322323 if constexpr (std::is_reference_v<T>)
@@ -658,7 +659,7 @@ inline namespace CO_DISPATCH_NS {
658659
659660 template <class ... Args>
660661 requires (DelayedValue::template IsEmplaceableFrom<Args...>)
661- void success (Args && ...args) const noexcept (noexcept (m_sharedState->emplaceReturnValue (std::forward<Args>(args)...)))
662+ void success (Args && ...args) const noexcept (noexcept (m_sharedState->emplaceReturnValue (std::forward<Args>(args)...)))
662663 { m_sharedState->emplaceReturnValue (std::forward<Args>(args)...); }
663664
664665 template <class X =DelayedValue>
@@ -958,7 +959,7 @@ inline namespace CO_DISPATCH_NS {
958959 return awaiter{*this };
959960 }
960961
961- void return_void () noexcept
962+ void return_void () noexcept
962963 {}
963964
964965 void destroy () const noexcept {
@@ -1026,15 +1027,15 @@ inline namespace CO_DISPATCH_NS {
10261027 return m_valueToken;
10271028 }
10281029 private:
1029- Iterator (Util::ClientAbandonPtr<Promise> && promise, dispatch_queue_t _Nullable queue, DelayedValue::ValueToken valueToken):
1030+ Iterator (Util::ClientAbandonPtr<Promise> && promise, dispatch_queue_t _Nullable queue, typename DelayedValue::ValueToken valueToken):
10301031 m_promise(std::move(promise)),
10311032 m_queue(queue),
10321033 m_valueToken(valueToken)
10331034 {}
10341035 private:
10351036 Util::ClientAbandonPtr<Promise> m_promise;
10361037 Util::QueueHolder m_queue;
1037- DelayedValue::ValueToken m_valueToken;
1038+ typename DelayedValue::ValueToken m_valueToken;
10381039 };
10391040
10401041 auto beginOn (dispatch_queue_t _Nullable queue) && noexcept {
@@ -1141,7 +1142,7 @@ inline namespace CO_DISPATCH_NS {
11411142 };
11421143
11431144 /* *
1144- @function
1145+ @function
11451146 Coroutine version of `dispatch_io_read`
11461147
11471148 Unlike `dispatch_io_read` the progressHandler parameter is optional and is only needed if you
@@ -1160,7 +1161,7 @@ inline namespace CO_DISPATCH_NS {
11601161 }
11611162
11621163 /* *
1163- @function
1164+ @function
11641165 Coroutine version of `dispatch_read`
11651166
11661167 @return DispatchIOResult object with operation result
@@ -1174,7 +1175,7 @@ inline namespace CO_DISPATCH_NS {
11741175 }
11751176
11761177 /* *
1177- @function
1178+ @function
11781179 Coroutine version of `dispatch_io_write`
11791180
11801181 Unlike `dispatch_io_write` the progressHandler parameter is optional and is only needed if you
@@ -1194,7 +1195,7 @@ inline namespace CO_DISPATCH_NS {
11941195 }
11951196
11961197 /* *
1197- @function
1198+ @function
11981199 Coroutine version of `dispatch_write`
11991200
12001201 @return DispatchIOResult object with operation result
0 commit comments