Lines Matching defs:ValueT

41 template <typename KeyT, typename ValueT>
42 struct DenseMapPair : public std::pair<KeyT, ValueT> {
43 using std::pair<KeyT, ValueT>::pair;
45 KeyT &getFirst() { return std::pair<KeyT, ValueT>::first; }
46 const KeyT &getFirst() const { return std::pair<KeyT, ValueT>::first; }
47 ValueT &getSecond() { return std::pair<KeyT, ValueT>::second; }
48 const ValueT &getSecond() const { return std::pair<KeyT, ValueT>::second; }
53 template <typename KeyT, typename ValueT,
55 typename Bucket = llvm::detail::DenseMapPair<KeyT, ValueT>,
59 template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT,
68 using mapped_type = ValueT;
71 using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
73 DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
123 if constexpr (std::is_trivially_destructible_v<ValueT>) {
133 P->getSecond().~ValueT();
194 ValueT lookup(const_arg_type_t<KeyT> Val) const {
197 return ValueT();
202 const ValueT &at(const_arg_type_t<KeyT> Val) const {
211 std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
218 std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
277 std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
326 TheBucket->getSecond().~ValueT();
334 TheBucket->getSecond().~ValueT();
340 ValueT &operator[](const KeyT &Key) {
348 ValueT &operator[](KeyT &&Key) {
379 P->getSecond().~ValueT();
421 ::new (&DestBucket->getSecond()) ValueT(std::move(B->getSecond()));
425 B->getSecond().~ValueT();
433 const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
444 std::is_trivially_copyable_v<ValueT>) {
454 ::new (&Buckets[I].getSecond()) ValueT(OtherBuckets[I].getSecond());
546 ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
552 ValueT &&Value, LookupKeyT &Lookup) {
556 ::new (&TheBucket->getSecond()) ValueT(std::move(Value));
695 template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT,
698 const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> &LHS,
699 const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> &RHS) {
715 template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT,
718 const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> &LHS,
719 const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> &RHS) {
723 template <typename KeyT, typename ValueT,
725 typename BucketT = llvm::detail::DenseMapPair<KeyT, ValueT>>
726 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
727 KeyT, ValueT, KeyInfoT, BucketT> {
728 friend class DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
732 using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
877 template <typename KeyT, typename ValueT, unsigned InlineBuckets = 4,
879 typename BucketT = llvm::detail::DenseMapPair<KeyT, ValueT>>
882 SmallDenseMap<KeyT, ValueT, InlineBuckets, KeyInfoT, BucketT>, KeyT,
883 ValueT, KeyInfoT, BucketT> {
884 friend class DenseMapBase<SmallDenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
888 using BaseT = DenseMapBase<SmallDenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
965 ::new (&RHSB->getSecond()) ValueT(std::move(LHSB->getSecond()));
966 LHSB->getSecond().~ValueT();
968 ::new (&LHSB->getSecond()) ValueT(std::move(RHSB->getSecond()));
969 RHSB->getSecond().~ValueT();
998 ::new (&NewB->getSecond()) ValueT(std::move(OldB->getSecond()));
999 OldB->getSecond().~ValueT();
1063 ::new (&TmpEnd->getSecond()) ValueT(std::move(P->getSecond()));
1065 P->getSecond().~ValueT();
1187 template <typename KeyT, typename ValueT, typename KeyInfoT, typename Bucket,
1190 friend class DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
1191 friend class DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, false>;
1227 const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
1300 template <typename KeyT, typename ValueT, typename KeyInfoT>
1301 inline size_t capacity_in_bytes(const DenseMap<KeyT, ValueT, KeyInfoT> &X) {