@@ -88,16 +88,13 @@ template <typename ContainerTy> struct ContainerConcepts {
8888 template <typename Ty>
8989 using ClearCheck = decltype (std::declval<Ty>().clear());
9090 template <typename Ty>
91- using ClearAllCheck = decltype (std::declval<Ty>().clearAll(1 ));
92- template <typename Ty>
9391 using ReserveCheck = decltype (std::declval<Ty>().reserve(1 ));
9492 template <typename Ty>
9593 using ResizeCheck = decltype (std::declval<Ty>().resize(1 ));
9694
9795 static constexpr bool hasIterator =
9896 has<ContainerTy, IteratorTypeCheck>::value;
9997 static constexpr bool hasClear = has<ContainerTy, ClearCheck>::value;
100- static constexpr bool hasClearAll = has<ContainerTy, ClearAllCheck>::value;
10198 static constexpr bool isAssociative =
10299 has<ContainerTy, MappedTypeCheck>::value;
103100 static constexpr bool hasReserve = has<ContainerTy, ReserveCheck>::value;
@@ -213,10 +210,8 @@ template <typename ContainerType, typename ObjectType> class PerThreadTable {
213210 for (std::shared_ptr<PerThreadData> ThreadData : ThreadDataList) {
214211 if (!ThreadData->ThreadEntry || ThreadData->NElements == 0 )
215212 continue ;
216- if constexpr (ContainerConcepts<ContainerType>::hasClearAll) {
217- ThreadData->ThreadEntry ->clearAll (ClearFunc);
218- } else if constexpr (ContainerConcepts<ContainerType>::hasIterator &&
219- ContainerConcepts<ContainerType>::hasClear) {
213+ if constexpr (ContainerConcepts<ContainerType>::hasIterator &&
214+ ContainerConcepts<ContainerType>::hasClear) {
220215 for (auto &Obj : *ThreadData->ThreadEntry ) {
221216 if constexpr (ContainerConcepts<ContainerType>::isAssociative) {
222217 ClearFunc (Obj.second );
0 commit comments