diff --git a/libminifi/include/utils/FlatMap.h b/libminifi/include/utils/FlatMap.h index 6b0d309696..adbdf63732 100644 --- a/libminifi/include/utils/FlatMap.h +++ b/libminifi/include/utils/FlatMap.h @@ -145,7 +145,8 @@ class FlatMap{ return data_.rbegin()->second; } - const V& at(std::equality_comparable_with auto const& key) const { + template T> + const V& at(const T& key) const { auto it = find(key); if (it != end()) { return it->second; @@ -153,7 +154,8 @@ class FlatMap{ throw std::out_of_range("utils::FlatMap::at"); } - V& at(std::equality_comparable_with auto const& key) { + template T> + V& at(const T& key) { auto it = find(key); if (it != end()) { return it->second; @@ -168,7 +170,8 @@ class FlatMap{ return iterator{data_.begin() + offset}; } - std::size_t erase(std::equality_comparable_with auto const& key) { + template T> + std::size_t erase(const T& key) { for (auto it = data_.begin(); it != data_.end(); ++it) { if (it->first == key) { std::swap(*data_.rbegin(), *it); @@ -210,14 +213,16 @@ class FlatMap{ return {iterator{data_.begin() + data_.size() - 1}, true}; } - iterator find(std::equality_comparable_with auto const& key) { + template T> + iterator find(const T& key) { for (auto it = data_.begin(); it != data_.end(); ++it) { if (it->first == key) return iterator{it}; } return end(); } - const_iterator find(std::equality_comparable_with auto const& key) const { + template T> + const_iterator find(const T& key) const { for (auto it = data_.begin(); it != data_.end(); ++it) { if (it->first == key) return const_iterator{it}; } @@ -284,7 +289,8 @@ class FlatMap{ return data_.empty(); } - bool contains(std::equality_comparable_with auto const& key) const { + template T> + bool contains(const T& key) const { return find(key) != end(); }