Switch C++ language standard to C++20 - #15182
Merged
Merged
Conversation
* emu/ioport.h: Allow char8_t for names in field configuration helper. * emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers, allow source file and manufacturer strings to be deduplicated. * util/language.h: Allow char8_t message input.
Member
Author
|
As usual, GCC and clang have differing default levels of strictness on C++20 stuff. In particular, GCC tends to be more strict on telling you not to do arithmetic/bitwise operations on different enum types, while clang is a bit more lenient on that. It may be possible to make clang stricter on those specific thing without collateral damage, but I haven't looked into it too hard yet. |
Contributor
|
We are finally moving to c++20 modules? |
Member
Author
No. There are no actual working implementations of C++20 modules. It’s a misguided feature railroaded into the standard by a powerful clique. It will end up going the same way as |
0perator-github
pushed a commit
to 0perator-github/mameui
that referenced
this pull request
Apr 2, 2026
…CC 11. (mamedev#15182) * Hackery to allow UTF-8 strings as well as plain strings: - emu/ioport.h: Allow char8_t for names in field configuration helper. - emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers. - util/language.h: Allow char8_t message input. * util/strformat.h: Allow char8_t format and string arguments with char output. * ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type. * osd/windows: Assume Windows 8 or later.
0perator-github
pushed a commit
to 0perator-github/mameui
that referenced
this pull request
Apr 2, 2026
…CC 11. (mamedev#15182) * Hackery to allow UTF-8 strings as well as plain strings: - emu/ioport.h: Allow char8_t for names in field configuration helper. - emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers. - util/language.h: Allow char8_t message input. * util/strformat.h: Allow char8_t format and string arguments with char output. * ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type. * osd/windows: Assume Windows 8 or later.
0perator-github
pushed a commit
to 0perator-github/mameui
that referenced
this pull request
Apr 2, 2026
…CC 11. (mamedev#15182) * Hackery to allow UTF-8 strings as well as plain strings: - emu/ioport.h: Allow char8_t for names in field configuration helper. - emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers. - util/language.h: Allow char8_t message input. * util/strformat.h: Allow char8_t format and string arguments with char output. * ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type. * osd/windows: Assume Windows 8 or later.
stonedDiscord
pushed a commit
to stonedDiscord/mame
that referenced
this pull request
Apr 14, 2026
…CC 11. (mamedev#15182) * Hackery to allow UTF-8 strings as well as plain strings: - emu/ioport.h: Allow char8_t for names in field configuration helper. - emu/device.h, emu/gamedrv.h: Allow char8_t for descriptions and manufacturers. - util/language.h: Allow char8_t message input. * util/strformat.h: Allow char8_t format and string arguments with char output. * ui/videoopt.cpp: Deal with UTF-8 strings as a distinct type. * osd/windows: Assume Windows 8 or later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The ugly parts of this are because C++20 makes
u8"..."a different type to"..."and we want to be able to continue using them interchangeably in some places.