New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ios_base
constants should have bitmask types
#3405
Conversation
Have you considered |
Co-authored-by: Alex Guteniev <gutenev@gmail.com>
Thanks. I knew about the macro but I forgot about it. |
|
Not sure if it wouldn't be an ABI break |
Can we fix it? What if a user used It looks like ABI break. I don't really understand all this about ABI break, but I remember that |
The variables don't seem to appear on the DLL's export surface, so it might be possible to change their types. Yes, theoretically someone could have been depending on their types in their own signatures, but it would be fairly hard (especially pre- |
Thanks, I pushed small changes to the test. I double-checked for changes to the release and debug DLL export surfaces, and found none. I think this is ABI-safe from a "does this affect the redist" perspective, and I think that it's unlikely to be disruptive (as I mentioned earlier, theoretically someone could have used There is now unused enum machinery but I would prefer not to mess with that at this time (as the TRANSITION, ABI comments indicate, I once thought this affected ABI - I can't remember why). |
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
_Openmode
,_Seekdir
,_Fmtflags
,_Iostate
are BitmaskTypesios_base
constants should have bitmask types
Thanks for fixing this long-standing nonconformance! ✨ 😺 🎉 |
Fixes #3401
If I understand correctly we can't change types of the variables but we can add operators.