Skip to content

Fix MSVC container-of-move-only-type workaround in algorithm::traverse#177

Open
a2Fsa2k wants to merge 2 commits into
ned14:developfrom
a2Fsa2k:fix/msvc-list-workaround
Open

Fix MSVC container-of-move-only-type workaround in algorithm::traverse#177
a2Fsa2k wants to merge 2 commits into
ned14:developfrom
a2Fsa2k:fix/msvc-list-workaround

Conversation

@a2Fsa2k

@a2Fsa2k a2Fsa2k commented May 30, 2026

Copy link
Copy Markdown
Contributor

Summary

The workaround for the MSVC STL defect where vector<list<move-only-type>> doesn't compile was gated on _MSVC_STL_VERSION < 150, but the underlying standard defect (see microsoft/STL#1036) affects all current MSVC versions. This broadens the check to cover any MSC compiler.

Changes

  • include/llfio/v2.0/detail/impl/traverse.ipp: Change #if _MSVC_STL_VERSION < 150 to #if defined(_MSC_VER) so the moving copy constructor workaround applies to all MSVC versions

Closes: #98

a2Fsa2k and others added 2 commits May 30, 2026 16:35
The bandwidth values in the README refer to gigabytes per second, not
gigabits. The correct SI abbreviation for gigabyte is GB (Gb is gigabit).
All bandwidth numbers (DDR4, PCIe, NVMe, etc.) are in GB/s.

Closes: ned14#159

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The workaround for the MSVC STL defect with
vector<list<move-only-type>> was gated on _MSVC_STL_VERSION < 150,
but the underlying standard defect affects all MSVC versions. Broaden
the check to cover any MSC compiler.

Closes: ned14#98
@a2Fsa2k a2Fsa2k force-pushed the fix/msvc-list-workaround branch from c96d106 to ad1cc46 Compare May 30, 2026 11:13
@ned14

ned14 commented Jun 1, 2026

Copy link
Copy Markdown
Owner

The hope had been that Microsoft would fix their STL next revision. But I guess they're not going to. Thanks for the PR.

@ned14

ned14 commented Jun 1, 2026

Copy link
Copy Markdown
Owner

I don't think that this fix is the right one, so I won't be merging it as-is. What we really need is for Microsoft's STL to tell us if it needs the workarounds or now. I've requested such a feature macro at microsoft/STL#6302 and we'll see what they say.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

algorithm::traverse uses a vector<list<move-only-type>> which isn't guaranteed to work

2 participants