Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@frederick-vs-ja
Copy link
Contributor

@frederick-vs-ja frederick-vs-ja commented Oct 3, 2023

By changing the base type of discard_block_engine when _Px is too large for discard_block to work. The changes will break ABI for some discard_block_engine specializations that didn't previously work.

I haven't come up with a portable way for testing, because what I had tried took a long while to run.

Also correct the types of static data members block_size and used_block.

Fixes #2250.

@frederick-vs-ja frederick-vs-ja requested a review from a team as a code owner October 3, 2023 06:50
Also correct the types of static data members `block_size` and
`used_block`.
@CaseyCarter CaseyCarter added the LWG Library Working Group issue label Oct 3, 2023
@StephanTLavavej StephanTLavavej self-assigned this Oct 3, 2023
@StephanTLavavej
Copy link
Member

Thanks! After thinking about this carefully, I believe that this strategy is safe - it changes layout only for template arguments that were totally broken before. (Also this is highly unlikely to have occurred in practice.) And as I replied to the comment that @MattStephanson raised, the static constexpr data member type changes are vanishingly unlikely to pose mismatch problems, so I agree that we should just fix their types now.

I believe that I understand these changes well enough that only one maintainer approval is needed.

@StephanTLavavej
Copy link
Member

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

@StephanTLavavej StephanTLavavej merged commit 9e20399 into microsoft:main Oct 4, 2023
@StephanTLavavej
Copy link
Member

Thanks for implementing this penultimate LWG issue! 🎉 😻 📉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

LWG Library Working Group issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LWG-3561 Issue with internal counter in discard_block_engine

4 participants