Skip to content

Commit dd0ae2d

Browse files
committed
Avoid mangling type pack index.
1 parent 954159a commit dd0ae2d

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

include/stdexec/__detail/__meta.hpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,11 +1041,17 @@ namespace stdexec {
10411041
// C++23 pack indexing is disabled for clang because of
10421042
// https://github.com/llvm/llvm-project/issues/116105
10431043
#if defined(__cpp_pack_indexing) && !STDEXEC_CLANG()
1044+
template <bool>
1045+
struct __m_at_ {
1046+
template <class _Np, class... _Ts>
1047+
using __f = _Ts...[__v<_Np>];
1048+
};
1049+
10441050
template <class _Np, class... _Ts>
1045-
using __m_at = _Ts...[__v<_Np>];
1051+
using __m_at = __minvoke<__m_at_<__v<_Np> == ~0ul>, _Np, _Ts...>;
10461052

10471053
template <std::size_t _Np, class... _Ts>
1048-
using __m_at_c = _Ts...[_Np];
1054+
using __m_at_c = __minvoke<__m_at_<_Np == ~0ul>, __msize_t<_Np>, _Ts...>;
10491055
#elif STDEXEC_HAS_BUILTIN(__type_pack_element)
10501056
template <bool>
10511057
struct __m_at_ {

0 commit comments

Comments
 (0)