116116#if STDEXEC_MSVC()
117117# define STDEXEC_PRAGMA (_ARG ) __pragma(_ARG)
118118#else
119- # define STDEXEC_PRAGMA (_ARG ) _Pragma (STDEXEC_STRINGIZE (_ARG))
119+ # define STDEXEC_PRAGMA (_ARG ) _Pragma (STDEXEC_PP_STRINGIZE (_ARG))
120120#endif
121121
122122// //////////////////////////////////////////////////////////////////////////////////////////////////
@@ -186,9 +186,9 @@ namespace STDEXEC::__std {
186186//
187187// STDEXEC_ATTRIBUTE(attr1, attr2, ...)
188188// void foo() { ... }
189- #define STDEXEC_ATTRIBUTE (...) STDEXEC_FOR_EACH (STDEXEC__ATTRIBUTE_DETAIL, __VA_ARGS__)
189+ #define STDEXEC_ATTRIBUTE (...) STDEXEC_PP_FOR_EACH (STDEXEC__ATTRIBUTE_DETAIL, __VA_ARGS__)
190190#define STDEXEC__ATTRIBUTE_DETAIL (_ATTR ) \
191- STDEXEC_CAT (STDEXEC_ATTR_WHICH_, STDEXEC_CHECK(STDEXEC_CAT (STDEXEC_ATTR_, _ATTR)))(_ATTR)
191+ STDEXEC_PP_CAT (STDEXEC_ATTR_WHICH_, STDEXEC_PP_CHECK(STDEXEC_PP_CAT (STDEXEC_ATTR_, _ATTR)))(_ATTR)
192192
193193// unknown attributes are treated like C++-style attributes
194194#define STDEXEC_ATTR_WHICH_0 (_ATTR ) [[_ATTR]]
@@ -199,16 +199,16 @@ namespace STDEXEC::__std {
199199#else
200200# define STDEXEC_ATTR_WHICH_1 (_ATTR )
201201#endif
202- #define STDEXEC_ATTR_host STDEXEC_PROBE (~, 1 )
203- #define STDEXEC_ATTR___host__ STDEXEC_PROBE (~, 1 )
202+ #define STDEXEC_ATTR_host STDEXEC_PP_PROBE (~, 1 )
203+ #define STDEXEC_ATTR___host__ STDEXEC_PP_PROBE (~, 1 )
204204
205205#if defined(__CUDACC__) && !STDEXEC_NVHPC()
206206# define STDEXEC_ATTR_WHICH_2 (_ATTR ) __device__
207207#else
208208# define STDEXEC_ATTR_WHICH_2 (_ATTR )
209209#endif
210- #define STDEXEC_ATTR_device STDEXEC_PROBE (~, 2 )
211- #define STDEXEC_ATTR___device__ STDEXEC_PROBE (~, 2 )
210+ #define STDEXEC_ATTR_device STDEXEC_PP_PROBE (~, 2 )
211+ #define STDEXEC_ATTR___device__ STDEXEC_PP_PROBE (~, 2 )
212212
213213#if STDEXEC_NVHPC()
214214// NVBUG #4067067: NVHPC does not fully support [[no_unique_address]]
@@ -235,7 +235,7 @@ namespace STDEXEC::__std {
235235#else
236236# define STDEXEC_ATTR_WHICH_3 (_ATTR ) [[no_unique_address]]
237237#endif
238- #define STDEXEC_ATTR_no_unique_address STDEXEC_PROBE (~, 3 )
238+ #define STDEXEC_ATTR_no_unique_address STDEXEC_PP_PROBE (~, 3 )
239239
240240#if STDEXEC_MSVC()
241241# define STDEXEC_ATTR_WHICH_4 (_ATTR ) __forceinline
@@ -247,40 +247,40 @@ namespace STDEXEC::__std {
247247#else
248248# define STDEXEC_ATTR_WHICH_4 (_ATTR ) /* nothing*/
249249#endif
250- #define STDEXEC_ATTR_always_inline STDEXEC_PROBE (~, 4 )
250+ #define STDEXEC_ATTR_always_inline STDEXEC_PP_PROBE (~, 4 )
251251
252252#if STDEXEC_CLANG() || STDEXEC_GCC()
253253# define STDEXEC_ATTR_WHICH_5 (_ATTR ) __attribute__((__weak__))
254254#else
255255# define STDEXEC_ATTR_WHICH_5 (_ATTR ) /* nothing*/
256256#endif
257- #define STDEXEC_ATTR_weak STDEXEC_PROBE (~, 5 )
258- #define STDEXEC_ATTR___weak__ STDEXEC_PROBE (~, 5 )
257+ #define STDEXEC_ATTR_weak STDEXEC_PP_PROBE (~, 5 )
258+ #define STDEXEC_ATTR___weak__ STDEXEC_PP_PROBE (~, 5 )
259259
260260#if STDEXEC_HAS_ATTRIBUTE(__preferred_name__)
261261# define STDEXEC_ATTR_WHICH_6 (_ATTR ) __attribute__((_ATTR))
262262#else
263263# define STDEXEC_ATTR_WHICH_6 (_ATTR ) /* nothing*/
264264#endif
265- #define STDEXEC_ATTR_preferred_name STDEXEC_PROBE (~, 6 )
266- #define STDEXEC_ATTR___preferred_name__ STDEXEC_PROBE (~, 6 )
265+ #define STDEXEC_ATTR_preferred_name STDEXEC_PP_PROBE (~, 6 )
266+ #define STDEXEC_ATTR___preferred_name__ STDEXEC_PP_PROBE (~, 6 )
267267
268268#if defined(__launch_bounds__) && !STDEXEC_NVHPC()
269- # define STDEXEC_ATTR_WHICH_7 (_ATTR ) STDEXEC_CAT (STDEXEC_ATTR_NORMALIZE_, _ATTR)
269+ # define STDEXEC_ATTR_WHICH_7 (_ATTR ) STDEXEC_PP_CAT (STDEXEC_ATTR_NORMALIZE_, _ATTR)
270270#else
271271# define STDEXEC_ATTR_WHICH_7 (_ATTR )
272272#endif
273273#define STDEXEC_ATTR_NORMALIZE_launch_bounds (...) __launch_bounds__(__VA_ARGS__)
274274#define STDEXEC_ATTR_NORMALIZE___launch_bounds__ (...) __launch_bounds__(__VA_ARGS__)
275- #define STDEXEC_ATTR_launch_bounds (...) STDEXEC_PROBE (~, 7 )
276- #define STDEXEC_ATTR___launch_bounds__ (...) STDEXEC_PROBE (~, 7 )
275+ #define STDEXEC_ATTR_launch_bounds (...) STDEXEC_PP_PROBE (~, 7 )
276+ #define STDEXEC_ATTR___launch_bounds__ (...) STDEXEC_PP_PROBE (~, 7 )
277277
278278#if STDEXEC_MSVC() && !STDEXEC_CLANG_CL()
279279# define STDEXEC_ATTR_WHICH_8 (_ATTR ) __declspec(_ATTR)
280280#else
281281# define STDEXEC_ATTR_WHICH_8 (_ATTR ) /* nothing*/
282282#endif
283- #define STDEXEC_ATTR_empty_bases STDEXEC_PROBE (~, 8 )
283+ #define STDEXEC_ATTR_empty_bases STDEXEC_PP_PROBE (~, 8 )
284284
285285// //////////////////////////////////////////////////////////////////////////////////////////////////
286286// warning push/pop portability macros
@@ -680,32 +680,32 @@ namespace STDEXEC {
680680#else
681681
682682# define STDEXEC_EXPLICIT_THIS_BEGIN (...) \
683- static STDEXEC_EXPAND ( STDEXEC_CAT (STDEXEC_EXPLICIT_THIS_MANGLE_, __VA_ARGS__) STDEXEC_RPAREN ) \
684- STDEXEC_LPAREN STDEXEC_EXPLICIT_THIS_ARGS
683+ static STDEXEC_PP_EXPAND ( STDEXEC_PP_CAT (STDEXEC_EXPLICIT_THIS_MANGLE_, __VA_ARGS__) STDEXEC_PP_RPAREN ) \
684+ STDEXEC_PP_LPAREN STDEXEC_EXPLICIT_THIS_ARGS
685685
686686# define STDEXEC_EXPLICIT_THIS_ARGS (...) \
687- STDEXEC_CAT (STDEXEC_EXPLICIT_THIS_EAT_, __VA_ARGS__) STDEXEC_RPAREN
687+ STDEXEC_PP_CAT (STDEXEC_EXPLICIT_THIS_EAT_, __VA_ARGS__) STDEXEC_PP_RPAREN
688688
689689# define STDEXEC_EXPLICIT_THIS_END (_FN ) \
690690 template <class ... Ts> \
691691 STDEXEC_ATTRIBUTE (always_inline) \
692692 auto _FN (Ts&&... ts) \
693693 && STDEXEC_AUTO_RETURN ( \
694694 decltype (STDEXEC::__get_self<Ts...>( \
695- *this ))::STDEXEC_CAT (static_, _FN)(std::move (*this ), static_cast <Ts&&>(ts)...)) \
695+ *this ))::STDEXEC_PP_CAT (static_, _FN)(std::move (*this ), static_cast <Ts&&>(ts)...)) \
696696 \
697697 template <class ... Ts> \
698698 STDEXEC_ATTRIBUTE (always_inline) \
699699 auto _FN (Ts&&... ts) const & STDEXEC_AUTO_RETURN ( \
700700 decltype (STDEXEC::__get_self<Ts...>( \
701- *this ))::STDEXEC_CAT (static_, _FN)(*this , static_cast <Ts&&>(ts)...))
701+ *this ))::STDEXEC_PP_CAT (static_, _FN)(*this , static_cast <Ts&&>(ts)...))
702702
703703# define STDEXEC_EXPLICIT_THIS_EAT_this
704704# define STDEXEC_EXPLICIT_THIS_EAT_auto
705705# define STDEXEC_EXPLICIT_THIS_EAT_void
706- # define STDEXEC_EXPLICIT_THIS_MANGLE_auto auto STDEXEC_EXPLICIT_THIS_MANGLE STDEXEC_LPAREN
707- # define STDEXEC_EXPLICIT_THIS_MANGLE_void void STDEXEC_EXPLICIT_THIS_MANGLE STDEXEC_LPAREN
708- # define STDEXEC_EXPLICIT_THIS_MANGLE (_NAME ) STDEXEC_CAT (static_, _NAME)
706+ # define STDEXEC_EXPLICIT_THIS_MANGLE_auto auto STDEXEC_EXPLICIT_THIS_MANGLE STDEXEC_PP_LPAREN
707+ # define STDEXEC_EXPLICIT_THIS_MANGLE_void void STDEXEC_EXPLICIT_THIS_MANGLE STDEXEC_PP_LPAREN
708+ # define STDEXEC_EXPLICIT_THIS_MANGLE (_NAME ) STDEXEC_PP_CAT (static_, _NAME)
709709
710710namespace STDEXEC {
711711 template <class ... _Ts, class _Self >
0 commit comments