From b07cee08c4280d85803275628d84f4bb629dd06f Mon Sep 17 00:00:00 2001 From: joaquintides Date: Mon, 29 Apr 2024 11:23:15 +0200 Subject: [PATCH] added stats to the rest of open-addressing containers --- include/boost/unordered/unordered_flat_set.hpp | 13 +++++++++++++ include/boost/unordered/unordered_node_map.hpp | 13 +++++++++++++ include/boost/unordered/unordered_node_set.hpp | 13 +++++++++++++ 3 files changed, 39 insertions(+) diff --git a/include/boost/unordered/unordered_flat_set.hpp b/include/boost/unordered/unordered_flat_set.hpp index a6aba397..4f595ef2 100644 --- a/include/boost/unordered/unordered_flat_set.hpp +++ b/include/boost/unordered/unordered_flat_set.hpp @@ -72,6 +72,10 @@ namespace boost { using iterator = typename table_type::iterator; using const_iterator = typename table_type::const_iterator; +#if defined(BOOST_UNORDERED_ENABLE_STATS) + using stats = typename table_type::stats; +#endif + unordered_flat_set() : unordered_flat_set(0) {} explicit unordered_flat_set(size_type n, hasher const& h = hasher(), @@ -474,6 +478,15 @@ namespace boost { void reserve(size_type n) { table_.reserve(n); } +#if defined(BOOST_UNORDERED_ENABLE_STATS) + /// Stats + /// + + stats get_stats() const { return table_.get_stats(); } + + void reset_stats() { table_.reset_stats(); } +#endif + /// Observers /// diff --git a/include/boost/unordered/unordered_node_map.hpp b/include/boost/unordered/unordered_node_map.hpp index b7a6a409..9a0afe7b 100644 --- a/include/boost/unordered/unordered_node_map.hpp +++ b/include/boost/unordered/unordered_node_map.hpp @@ -115,6 +115,10 @@ namespace boost { using insert_return_type = detail::foa::insert_return_type; +#if defined(BOOST_UNORDERED_ENABLE_STATS) + using stats = typename table_type::stats; +#endif + unordered_node_map() : unordered_node_map(0) {} explicit unordered_node_map(size_type n, hasher const& h = hasher(), @@ -749,6 +753,15 @@ namespace boost { void reserve(size_type n) { table_.reserve(n); } +#if defined(BOOST_UNORDERED_ENABLE_STATS) + /// Stats + /// + + stats get_stats() const { return table_.get_stats(); } + + void reset_stats() { table_.reset_stats(); } +#endif + /// Observers /// diff --git a/include/boost/unordered/unordered_node_set.hpp b/include/boost/unordered/unordered_node_set.hpp index 14b44bed..9da992ec 100644 --- a/include/boost/unordered/unordered_node_set.hpp +++ b/include/boost/unordered/unordered_node_set.hpp @@ -105,6 +105,10 @@ namespace boost { using insert_return_type = detail::foa::insert_return_type; +#if defined(BOOST_UNORDERED_ENABLE_STATS) + using stats = typename table_type::stats; +#endif + unordered_node_set() : unordered_node_set(0) {} explicit unordered_node_set(size_type n, hasher const& h = hasher(), @@ -563,6 +567,15 @@ namespace boost { void reserve(size_type n) { table_.reserve(n); } +#if defined(BOOST_UNORDERED_ENABLE_STATS) + /// Stats + /// + + stats get_stats() const { return table_.get_stats(); } + + void reset_stats() { table_.reset_stats(); } +#endif + /// Observers ///