From cd3e02093f12f6f2e307dbf981610802f45ed70e Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 4 May 2019 10:49:54 +0700 Subject: [PATCH] add capacity interface --- flat_map.hpp | 12 ++++++++++++ flat_map_tests.cpp | 7 +++++++ flat_set.hpp | 12 ++++++++++++ flat_set_tests.cpp | 7 +++++++ 4 files changed, 38 insertions(+) diff --git a/flat_map.hpp b/flat_map.hpp index 32081b3..f9d98f4 100644 --- a/flat_map.hpp +++ b/flat_map.hpp @@ -110,6 +110,18 @@ namespace flat_hpp const_reverse_iterator rend() const noexcept { return data_.rend(); } const_reverse_iterator crend() const noexcept { return data_.crend(); } + bool empty() const noexcept { + return data_.empty(); + } + + size_type size() const noexcept { + return data_.size(); + } + + size_type max_size() const noexcept { + return data_.max_size(); + } + template < typename P , typename = std::enable_if_t::value> > std::pair insert(P&& p) { diff --git a/flat_map_tests.cpp b/flat_map_tests.cpp index 0ea5e12..227af3e 100644 --- a/flat_map_tests.cpp +++ b/flat_map_tests.cpp @@ -96,6 +96,13 @@ TEST_CASE("flat_map") { auto s3 = map_t({{0,1}, {1,2}}, std::less(), alloc_t()); } } + SECTION("capacity") { + using map_t = flat_map; + map_t s0; + s0.empty(); + s0.size(); + s0.max_size(); + } SECTION("inserts") { struct obj_t { obj_t(int i) : i(i) {} diff --git a/flat_set.hpp b/flat_set.hpp index 9704ebd..e11a9e4 100644 --- a/flat_set.hpp +++ b/flat_set.hpp @@ -109,6 +109,18 @@ namespace flat_hpp const_reverse_iterator rend() const noexcept { return data_.rend(); } const_reverse_iterator crend() const noexcept { return data_.crend(); } + bool empty() const noexcept { + return data_.empty(); + } + + size_type size() const noexcept { + return data_.size(); + } + + size_type max_size() const noexcept { + return data_.max_size(); + } + template < typename P , typename = std::enable_if_t::value> > std::pair insert(P&& p) { diff --git a/flat_set_tests.cpp b/flat_set_tests.cpp index 61bb706..7e57727 100644 --- a/flat_set_tests.cpp +++ b/flat_set_tests.cpp @@ -87,6 +87,13 @@ TEST_CASE("flat_set") { auto s3 = set_t({0,1,2}, std::less(), alloc_t()); } } + SECTION("capacity") { + using set_t = flat_set; + set_t s0; + s0.empty(); + s0.size(); + s0.max_size(); + } SECTION("inserts") { struct obj_t { obj_t(int i) : i(i) {}