CXX-2625 Address sign conversion warnings for literal argument to make_unique<T[]>() #1044
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.
Address the following warning:
given the following code:
for conformance with specification that states there should be a separate overload for the unbounded array case with an explicit single
std::size_t
parameter which integral literals that are representable bystd::size_t
should be able to initialize without triggering a warning.Proposed changes make use of the
std::enable_if_t<cond, decltype(expr, void())>* = nullptr
pattern to define multiple SFINAE templates without conflicts using both a boolean conditioncond
and an expression validity checkexpr
. Note: uniqueness of both the condition and the expression is encoded in the specialization ofstd::enable_if
as a non-type template parameter, avoiding the possibility of "template parameter redefines default argument" errors that is often encountered when using thetypename = ...
pattern for multiple overloads.The
std::enable_if<...>* = nullptr
pattern can be changed tostd::enable_if<...> = 0
if preferable. (Makes no singificant difference; just a style choice.)Examples of warnings and errors on expression validity failure with proposed changes: