Implement proposed resolution of LWG-3540 #1867
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.
... which makes
<format>handlevoid*in the same manner asconst void*. (Previouslyvoid*was treated as a "custom type" by the format argument machinery.)Drive-by: swap order of parameters for concept
_Has_formatterso we can use it as a type-constraint. Don't use return-type deduction for overloads of_Get_format_arg_storage_typethat always return the same type.Note that I haven't annotated this as implementing an unmerged LWG issue. The resolution hasn't been at all controversial in LWG, so I feel safe just making the change without annotation; reviewers may feel differently.