Date: Mon, 16 Feb 2026 10:09:39 +0000
When trying to get the smallest integral type of N bits, we either have to ensure N is one of 8, 16, 32 or 64, or trust the implementation to have a least/fast type for our width, which is often not the case.
That's why I propose a way to standardise making least width integers and fast size integers within the library:
A sample interface
std::make_least<N> => a signed integer with at least N bits in width
std::make_fast<N> => a signed integer with at least N bits in width that's also the fastest size for the given width
std::make_uleast<N> => an unsigned integer with at least N bits in width
std::make_ufast<N> => an unsigned integer with at least N bits in width that's also the fastest size for the given width
I'm only concerned about signed/unsigned, but that's ultimately the interface design and can/should be changed.
Cheers,
Tymi.
That's why I propose a way to standardise making least width integers and fast size integers within the library:
A sample interface
std::make_least<N> => a signed integer with at least N bits in width
std::make_fast<N> => a signed integer with at least N bits in width that's also the fastest size for the given width
std::make_uleast<N> => an unsigned integer with at least N bits in width
std::make_ufast<N> => an unsigned integer with at least N bits in width that's also the fastest size for the given width
I'm only concerned about signed/unsigned, but that's ultimately the interface design and can/should be changed.
Cheers,
Tymi.
Received on 2026-02-16 10:09:41
