From 01914f0389ef6ff151c289670f6910e059d5063f Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Sun, 12 Jan 2025 09:13:54 -0800 Subject: [PATCH] Reduce size of basic_specs --- include/fmt/base.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/fmt/base.h b/include/fmt/base.h index b832e534..8c0411bf 100644 --- a/include/fmt/base.h +++ b/include/fmt/base.h @@ -739,13 +739,15 @@ class basic_specs { max_fill_size = 4 }; - size_t data_ = 1 << fill_size_shift; + unsigned data_ = 1 << fill_size_shift; + static_assert(sizeof(data_) * CHAR_BIT >= 18, ""); // Character (code unit) type is erased to prevent template bloat. char fill_data_[max_fill_size] = {' '}; FMT_CONSTEXPR void set_fill_size(size_t size) { - data_ = (data_ & ~fill_size_mask) | (size << fill_size_shift); + data_ = (data_ & ~fill_size_mask) | + (static_cast(size) << fill_size_shift); } public: