From 114cd22f76af2dbbb959cb149cd8c147eb4b1ecd Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sat, 18 Apr 2020 16:16:00 +0200 Subject: [PATCH] Add some missing functions to CCMap --- src/sfizz/CCMap.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/sfizz/CCMap.h b/src/sfizz/CCMap.h index 1b44cf8c..dce9813f 100644 --- a/src/sfizz/CCMap.h +++ b/src/sfizz/CCMap.h @@ -22,7 +22,10 @@ namespace sfz { template class CCMap { public: - CCMap() = delete; + CCMap() + : defaultValue(ValueType {}) + { + } /** * @brief Construct a new CCMap object with the specified default value. * @@ -44,7 +47,7 @@ public: */ const ValueType& getWithDefault(int index) const noexcept { - auto it = absl::c_lower_bound(container, index, CCDataComparator{}); + auto it = absl::c_lower_bound(container, index, CCDataComparator {}); if (it == container.end() || it->cc != index) { return defaultValue; } else { @@ -60,7 +63,7 @@ public: */ ValueType& operator[](const int& index) noexcept { - auto it = absl::c_lower_bound(container, index, CCDataComparator{}); + auto it = absl::c_lower_bound(container, index, CCDataComparator {}); if (it == container.end() || it->cc != index) { auto inserted = container.insert(it, { index, defaultValue }); return inserted->data; @@ -85,10 +88,19 @@ public: */ bool contains(int index) const noexcept { - return absl::c_binary_search(container, index, CCDataComparator{}); + return absl::c_binary_search(container, index, CCDataComparator {}); } + + /** + * @brief Container size + * + * @return size_t + */ + size_t size() const noexcept { return container.size(); } + typename std::vector>::const_iterator begin() const { return container.cbegin(); } typename std::vector>::const_iterator end() const { return container.cend(); } + private: // typename std::vector>::iterator begin() { return container.begin(); } // typename std::vector>::iterator end() { return container.end(); }