Closed Cazayus closed 1 month ago
yvals.h is not a STL header
Actually, it is - <yvals.h>
is one of the STL's central internal headers: (<yvals_core.h>
is the "most central", but <yvals.h>
is a runner-up.)
https://github.com/microsoft/STL/blob/8dc4faadafb52e3e0a627e046b41258032d9bc6a/stl/inc/yvals.h#L1
Being part of the STL, <yvals.h>
is definitely affected by our current implementation bug/limitation of import-before-include resulting in duplicated machinery (like the internal std::_Uninitialized
type).
Also, because it's an internal header, user code shouldn't directly include <yvals.h>
. (This is unlike <crtdbg.h>
, which is a documented Microsoft-specific header.)
I'm going to resolve this as a duplicate of #4666, even though it's a bit different, because it's the same root cause which will need the same coordinated fix between the compiler and Standard Library to make arbitrary mixing of imports and includes work.
Thanks yet again for the thorough reports! :smile_cat:
Describe the bug
It is currently impossible to use the yvals header with the std module yvals.h is not a STL header, so it should not be affected by the current limitation of mixing import std and includes.
Command-line test case
Expected behavior
It should compile but does not
STL version