Opened 6 years ago
#12504 new Feature Requests
Use types from <cinttypes> in boost::uint_t and boost::int_t
Reported by: | Owned by: | Daryle Walker | |
---|---|---|---|
Milestone: | To Be Determined | Component: | integer |
Version: | Boost 1.61.0 | Severity: | Problem |
Keywords: | Cc: |
Description
I'd like to suggest that instead of using built-in types to implement boost::uint_t
and boost::int_t
that the explicitly sized types from <cinttypes> be used.
Take for instance this definition:
template<> struct int_least_helper<4> { typedef short least; };
Is there any reason not to replace short
with std::int16_t
in this line?
My (entirely selfish) reason to suggesting this is that I've hit an odd case in code I am writing in which boost::uint_t<64>::fast
is a different type to std::uint64_t
. It would appear that std::uint64_t
is defined as unsigned long long
under XCode 7 but unsigned long
under XCode 6. I fear that weirdness like this is inevitable given the many combinations of widths which built-in integer types can assume. But using the known-width types provided by <cinttypes> would seem like a more reliable way to proceed.
Many thanks, John McFarlane