From: Reid Kleckner Date: Wed, 22 May 2013 17:10:11 +0000 (+0000) Subject: [Support] Add StringMap::swap() and a default ctor for iterators X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=284ffa3863bc58f18a3eb879e49e05fdbe792413;p=oota-llvm.git [Support] Add StringMap::swap() and a default ctor for iterators This makes StringMap<> more compatible with std::map. Differential Revision: http://llvm-reviews.chandlerc.com/D842 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182487 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/ADT/StringMap.h b/include/llvm/ADT/StringMap.h index d01437b61c2..2e07268596a 100644 --- a/include/llvm/ADT/StringMap.h +++ b/include/llvm/ADT/StringMap.h @@ -102,6 +102,13 @@ public: bool empty() const { return NumItems == 0; } unsigned size() const { return NumItems; } + + void swap(StringMapImpl &Other) { + std::swap(TheTable, Other.TheTable); + std::swap(NumBuckets, Other.NumBuckets); + std::swap(NumItems, Other.NumItems); + std::swap(NumTombstones, Other.NumTombstones); + } }; /// StringMapEntry - This is used to represent one value that is inserted into @@ -409,6 +416,8 @@ protected: public: typedef StringMapEntry value_type; + StringMapConstIterator() : Ptr(0) { } + explicit StringMapConstIterator(StringMapEntryBase **Bucket, bool NoAdvance = false) : Ptr(Bucket) { @@ -448,6 +457,7 @@ private: template class StringMapIterator : public StringMapConstIterator { public: + StringMapIterator() : StringMapConstIterator() {} explicit StringMapIterator(StringMapEntryBase **Bucket, bool NoAdvance = false) : StringMapConstIterator(Bucket, NoAdvance) {