_Convert_size()
should be conditionally noexcept
#2139
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
_Convert_size()
is an internal helper function whose sole purpose in life is to throwlength_error
when asize_t
would be truncated to an allocator's narrowersize_type
(which is unusual, but there's nothing stopping an allocator from having a 32-bitsize_type
on a 64-bit system).During earlier maintenance (before the GitHub era), the primary template was incorrectly marked as being unconditionally
noexcept
. This fixes that bug (which no users noticed), and replaces the explicit specialization forsize_t
withif constexpr
logic.