I see #XCode 15 still doesn't support C++20 std::format.
Apple's Clang also doesn't like some of my C++ that GCC accepts. I'm guessing that's probably the same as non-Apple Clang, but haven't yet verified. It's entirely possible that Clang is finding things I'm doing wrong that GCC is allowing. Some of the complaints are about method overloading in subclasses. I may have to dive into the language standard, which I'm somewhat dreading. Until now, I've assumed that it's legit if GCC accepts it
1/
I'm only using the command-line tools, so I could try using GCC and libstdc++ on the Mac, instead of the XCode 15 tools. Of course, I'll still need to have XCode installed for the macOS SDK, which Qt6 requires.
2/
I'm not currently using any C++23 features, though I did briefly try out a few. In some of my C code, I was using C23 to get the [[maybe_unused]] attribute, but I changed those back to casts to void to allow use of C11/C17, or maybe even C99.
3/
I had previously decided that the C++ rewrite of #Nonpareil (microcode-level calculator simulation), still using non-scalable (PNG) graphics, would be Nonpareil II, and that a later Nonpareil III would have scalable (SVG) graphics. However, at the moment the scalable is actually working better, so I merged it in, and my current development build supports both. I have PNG graphics for every calculator model original Nonpareil supported, but currently SVG for only one model.
4/
The SVG has some extra tags in a Nonpareil namespace for additional information the Nonpareil user interface needs, any Qt's QSvgRenderer doesn't understand all of the SVG that e.g. Inkscape does, nor any CSS. I've put the SVG file together mostly by hand, and I'm not going to guarantee that SVG from graphics editors or other sources will be usable in Nonpareil.
5/
Although SVG is inherently scalable, Nonpareil sets the default scale based on the SVG coordinate units being mm., though it cannot be specified as such in the file. SVG defaults to coordinates without units being in "pixels", which is insane, but QSvgRenderer won't allow units on all coordinates. It allows units for the viewport size, and (incorrectly, I believe) uses those as the units for all coordinates.
6/
The result is that SVG files for Nonpareil are rendered in "normal" graphics programs as really tiny images, and some viewer programs don't actually allow zooming in.
7/
Nonpareil also requires specific naming for id attributes for certain elements, and certain groups. It's possible to accommodate that in Inkscape, but cumbersome.
Although Nonpareil doesn't require it, pitting repeated graphics like calculator keys in a <defs> tag, and instantiating them with <use> tags. I'm not sure how well Inkscape or other graphics editors handle that.
8/