@@ -66,8 +66,7 @@ class DenseSetImpl {
6666 using value_type = ValueT;
6767 using size_type = unsigned ;
6868
69- DenseSetImpl () = default ;
70- explicit DenseSetImpl (unsigned InitialReserve) : TheMap(InitialReserve) {}
69+ explicit DenseSetImpl (unsigned InitialReserve = 0 ) : TheMap(InitialReserve) {}
7170
7271 template <typename InputIt>
7372 DenseSetImpl (const InputIt &I, const InputIt &E)
@@ -251,25 +250,40 @@ bool operator!=(const DenseSetImpl<ValueT, MapTy, ValueInfoT> &LHS,
251250 return !(LHS == RHS);
252251}
253252
253+ template <typename ValueT, typename ValueInfoT>
254+ using DenseSet = DenseSetImpl<
255+ ValueT, DenseMap<ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair<ValueT>>,
256+ ValueInfoT>;
257+
258+ template <typename ValueT, unsigned InlineBuckets, typename ValueInfoT>
259+ using SmallDenseSet =
260+ DenseSetImpl<ValueT,
261+ SmallDenseMap<ValueT, DenseSetEmpty, InlineBuckets, ValueInfoT,
262+ DenseSetPair<ValueT>>,
263+ ValueInfoT>;
264+
254265} // end namespace detail
255266
256267// / Implements a dense probed hash-table based set.
257268template <typename ValueT, typename ValueInfoT = DenseMapInfo<ValueT>>
258- using DenseSet =
259- detail::DenseSetImpl<ValueT,
260- DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
261- detail::DenseSetPair<ValueT>>,
262- ValueInfoT>;
269+ class DenseSet : public detail ::DenseSet<ValueT, ValueInfoT> {
270+ using BaseT = detail::DenseSet<ValueT, ValueInfoT>;
271+
272+ public:
273+ using BaseT::BaseT;
274+ };
263275
264276// / Implements a dense probed hash-table based set with some number of buckets
265277// / stored inline.
266278template <typename ValueT, unsigned InlineBuckets = 4 ,
267279 typename ValueInfoT = DenseMapInfo<ValueT>>
268- using SmallDenseSet = detail::DenseSetImpl<
269- ValueT,
270- SmallDenseMap<ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT,
271- detail::DenseSetPair<ValueT>>,
272- ValueInfoT>;
280+ class SmallDenseSet
281+ : public detail::SmallDenseSet<ValueT, InlineBuckets, ValueInfoT> {
282+ using BaseT = detail::SmallDenseSet<ValueT, InlineBuckets, ValueInfoT>;
283+
284+ public:
285+ using BaseT::BaseT;
286+ };
273287
274288} // end namespace llvm
275289
0 commit comments