File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed
Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -453,8 +453,15 @@ namespace proto_activities {
453453 template <typename T>
454454 auto invoke_resume (T* frame) -> typename std::enable_if<!_pa_has_field(T, _pa_susres)>::type {}
455455}
456+ #if __cplusplus >= 201703L
457+ #define _pa_susres_suspend (ty, alias ) \
458+ if constexpr (_pa_has_field(ty, _pa_susres)) { proto_activities::invoke_suspend<ty>(_pa_inst_ptr (alias)); }
459+ #define _pa_susres_resume (ty, alias ) \
460+ if constexpr (_pa_has_field(ty, _pa_susres)) { proto_activities::invoke_resume<ty>(_pa_inst_ptr (alias)); }
461+ #else
456462#define _pa_susres_suspend (ty, alias ) proto_activities::invoke_suspend<ty>(_pa_inst_ptr(alias));
457463#define _pa_susres_resume (ty, alias ) proto_activities::invoke_resume<ty>(_pa_inst_ptr(alias));
464+ #endif
458465
459466#define pa_susres_res proto_activities::SusRes _pa_susres{};
460467#define pa_suspend pa_self._pa_susres.sus_thunk = [&]()
@@ -469,7 +476,11 @@ namespace proto_activities {
469476 template <typename T>
470477 auto invoke_enter (T& frame) -> typename std::enable_if<!_pa_has_field(T, _pa_enter)>::type {}
471478}
479+ #if __cplusplus >= 201703L
480+ #define _pa_enter_invoke (ty ) if constexpr (_pa_has_field(ty, _pa_enter)) { proto_activities::invoke_enter<ty>(pa_self); }
481+ #else
472482#define _pa_enter_invoke (ty ) proto_activities::invoke_enter<ty>(pa_self);
483+ #endif
473484
474485#define pa_enter_res proto_activities::Enter _pa_enter{};
475486#define pa_enter pa_self._pa_enter = [&]()
You can’t perform that action at this time.
0 commit comments