diff options
-rw-r--r-- | KnownState.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/KnownState.cpp b/KnownState.cpp index d6fbde2d..5a70a74f 100644 --- a/KnownState.cpp +++ b/KnownState.cpp @@ -162,7 +162,7 @@ KnownState::StoreOperation KnownState::feedItem(AssemblyItem const& _item, bool /// Helper function for KnownState::reduceToCommonKnowledge, removes everything from /// _this which is not in or not equal to the value in _other. -template <class _Mapping, class _KeyType = ExpressionClasses::Id> void intersect( +template <class _Mapping, class _KeyType> void intersect( _Mapping& _this, _Mapping const& _other, function<_KeyType(_KeyType)> const& _keyTrans = [](_KeyType _k) { return _k; } @@ -175,6 +175,11 @@ template <class _Mapping, class _KeyType = ExpressionClasses::Id> void intersect it = _this.erase(it); } +template <class _Mapping> void intersect(_Mapping& _this, _Mapping const& _other) +{ + intersect<_Mapping, ExpressionClasses::Id>(_this, _other, [](ExpressionClasses::Id _k) { return _k; }); +} + void KnownState::reduceToCommonKnowledge(KnownState const& _other) { int stackDiff = m_stackHeight - _other.m_stackHeight; |