@@ -574,6 +574,12 @@ struct DynamicAllocatorsT {
574574 using EmptyTrait = std::true_type;
575575};
576576
577+ // V6.1: `dyn_groupprivate` clause
578+ template <typename T, typename I, typename E> //
579+ struct DynGroupprivateT {
580+ using EmptyTrait = std::true_type;
581+ };
582+
577583// V5.2: [5.8.4] `enter` clause
578584template <typename T, typename I, typename E> //
579585struct EnterT {
@@ -1243,14 +1249,15 @@ using ExtensionClausesT =
12431249template <typename T, typename I, typename E>
12441250using EmptyClausesT = std::variant<
12451251 AcqRelT<T, I, E>, AcquireT<T, I, E>, CaptureT<T, I, E>, CompareT<T, I, E>,
1246- DynamicAllocatorsT<T, I, E>, FullT<T, I, E>, InbranchT<T, I, E>,
1247- MergeableT<T, I, E>, NogroupT<T, I, E>, NoOpenmpRoutinesT<T, I, E>,
1248- NoOpenmpT<T, I, E>, NoParallelismT<T, I, E>, NotinbranchT<T, I, E>,
1249- NowaitT<T, I, E>, ReadT<T, I, E>, RelaxedT<T, I, E>, ReleaseT<T, I, E>,
1250- ReverseOffloadT<T, I, E>, SeqCstT<T, I, E>, SimdT<T, I, E>,
1251- ThreadsT<T, I, E>, UnifiedAddressT<T, I, E>, UnifiedSharedMemoryT<T, I, E>,
1252- UnknownT<T, I, E>, UntiedT<T, I, E>, UseT<T, I, E>, WeakT<T, I, E>,
1253- WriteT<T, I, E>, NoOpenmpConstructsT<T, I, E>, SelfMapsT<T, I, E>>;
1252+ DynamicAllocatorsT<T, I, E>, DynGroupprivateT<T, I, E>, FullT<T, I, E>,
1253+ InbranchT<T, I, E>, MergeableT<T, I, E>, NogroupT<T, I, E>,
1254+ NoOpenmpRoutinesT<T, I, E>, NoOpenmpT<T, I, E>, NoParallelismT<T, I, E>,
1255+ NotinbranchT<T, I, E>, NowaitT<T, I, E>, ReadT<T, I, E>, RelaxedT<T, I, E>,
1256+ ReleaseT<T, I, E>, ReverseOffloadT<T, I, E>, SeqCstT<T, I, E>,
1257+ SimdT<T, I, E>, ThreadsT<T, I, E>, UnifiedAddressT<T, I, E>,
1258+ UnifiedSharedMemoryT<T, I, E>, UnknownT<T, I, E>, UntiedT<T, I, E>,
1259+ UseT<T, I, E>, WeakT<T, I, E>, WriteT<T, I, E>,
1260+ NoOpenmpConstructsT<T, I, E>, SelfMapsT<T, I, E>>;
12541261
12551262template <typename T, typename I, typename E>
12561263using IncompleteClausesT =
0 commit comments