diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-08-02 08:07:30 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-08-23 16:05:13 (GMT) |
commit | 55e3927634a4b071c1cf52cc2dc406b8973b82cc (patch) | |
tree | b83d0fdac4038ff61234761a28742179e16d207d | |
parent | 04168cbb593be0d58326b09346e90a6348a862ff (diff) | |
download | CMake-55e3927634a4b071c1cf52cc2dc406b8973b82cc.zip CMake-55e3927634a4b071c1cf52cc2dc406b8973b82cc.tar.gz CMake-55e3927634a4b071c1cf52cc2dc406b8973b82cc.tar.bz2 |
cmState: Make it possible to order cmState::Snapshot.
-rw-r--r-- | Source/cmLinkedTree.h | 7 | ||||
-rw-r--r-- | Source/cmState.cxx | 6 | ||||
-rw-r--r-- | Source/cmState.h | 7 |
3 files changed, 20 insertions, 0 deletions
diff --git a/Source/cmLinkedTree.h b/Source/cmLinkedTree.h index 3bcb940..721a246 100644 --- a/Source/cmLinkedTree.h +++ b/Source/cmLinkedTree.h @@ -128,6 +128,13 @@ public: } return this->Position <= this->Tree->Data.size(); } + + bool StrictWeakOrdered(iterator other) const + { + assert(this->Tree); + assert(this->Tree == other.Tree); + return this->Position < other.Position; + } }; iterator Root() const diff --git a/Source/cmState.cxx b/Source/cmState.cxx index f425861..66f19c3 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -1411,3 +1411,9 @@ void cmState::Directory::ClearCompileOptions() this->DirectoryState->CompileOptionsBacktraces, this->Snapshot_.Position->CompileOptionsPosition); } + +bool cmState::Snapshot::StrictWeakOrder::operator()( + const cmState::Snapshot& lhs, const cmState::Snapshot& rhs) const +{ + return lhs.Position.StrictWeakOrdered(rhs.Position); +} diff --git a/Source/cmState.h b/Source/cmState.h index 07aa2a5..3132d1b 100644 --- a/Source/cmState.h +++ b/Source/cmState.h @@ -74,9 +74,16 @@ public: Directory GetDirectory() const; + struct StrictWeakOrder + { + bool operator()(const cmState::Snapshot& lhs, + const cmState::Snapshot& rhs) const; + }; + private: friend class cmState; friend class Directory; + friend struct StrictWeakOrder; cmState* State; cmState::PositionType Position; }; |