Skip to content

Commit 5679726

Browse files
committed
Added template keyword in __tuple.hpp for member name disambiguation.
The mainline compilers accept the code as-is... for now. CWG1835 is resolved with the template kw. There's a recent patch waiting on-deck for Clang to require template in this position: llvm/llvm-project#92957 Circle requires the token now.
1 parent c1508b1 commit 5679726

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

include/stdexec/__detail/__tuple.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ namespace stdexec {
5656
struct __tuple<_Idx, _Ts...> : __box<_Ts, _Is>... {
5757
template <class... _Us>
5858
static __tuple __convert_from(__tuple<_Idx, _Us...> &&__tup) {
59-
return __tuple{{static_cast<_Us &&>(__tup.__box<_Us, _Is>::__value)}...};
59+
return __tuple{{static_cast<_Us &&>(__tup.template __box<_Us, _Is>::__value)}...};
6060
}
6161

6262
template <class... _Us>
6363
static __tuple __convert_from(__tuple<_Idx, _Us...> const &__tup) {
64-
return __tuple{{__tup.__box<_Us, _Is>::__value}...};
64+
return __tuple{{__tup.template __box<_Us, _Is>::__value}...};
6565
}
6666

6767
template <class _Fn, class _Self, class... _Us>
@@ -70,12 +70,12 @@ namespace stdexec {
7070
apply(_Fn &&__fn, _Self &&__self, _Us &&...__us) //
7171
noexcept(noexcept(static_cast<_Fn &&>(__fn)(
7272
static_cast<_Us &&>(__us)...,
73-
static_cast<_Self &&>(__self).__box<_Ts, _Is>::__value...)))
73+
static_cast<_Self &&>(__self).template __box<_Ts, _Is>::__value...)))
7474
-> decltype(static_cast<_Fn &&>(__fn)(
7575
static_cast<_Us &&>(__us)...,
76-
static_cast<_Self &&>(__self).__box<_Ts, _Is>::__value...)) {
76+
static_cast<_Self &&>(__self).template __box<_Ts, _Is>::__value...)) {
7777
return static_cast<_Fn &&>(__fn)(
78-
static_cast<_Us &&>(__us)..., static_cast<_Self &&>(__self).__box<_Ts, _Is>::__value...);
78+
static_cast<_Us &&>(__us)..., static_cast<_Self &&>(__self).template __box<_Ts, _Is>::__value...);
7979
}
8080

8181
template <class _Fn, class _Self, class... _Us>
@@ -86,7 +86,7 @@ namespace stdexec {
8686
noexcept((__nothrow_callable<_Fn, _Us..., __copy_cvref_t<_Self, _Ts>> && ...)) -> void {
8787
return (
8888
static_cast<_Fn &&>(__fn)(
89-
static_cast<_Us &&>(__us)..., static_cast<_Self &&>(__self).__box<_Ts, _Is>::__value),
89+
static_cast<_Us &&>(__us)..., static_cast<_Self &&>(__self).template __box<_Ts, _Is>::__value),
9090
...);
9191
}
9292
};

0 commit comments

Comments
 (0)