From ccef8f91eaafd012ba0f4033dc8f4948f8ab5d92 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Thu, 26 Nov 2020 14:43:30 +0300 Subject: [PATCH] Optimize flat_list::clear for the case of trivially-destructible types --- libs/util/include/psemek/util/flat_list.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/util/include/psemek/util/flat_list.hpp b/libs/util/include/psemek/util/flat_list.hpp index c016eba0..3c8e9dec 100644 --- a/libs/util/include/psemek/util/flat_list.hpp +++ b/libs/util/include/psemek/util/flat_list.hpp @@ -162,6 +162,14 @@ namespace psemek::util template void flat_list::clear() { + if constexpr (std::is_trivially_destructible_v) + { + nodes_.reset(); + capacity_ = 0; + first_ = null; + return; + } + if (size_ == 0) { nodes_.reset();