I notice in the SystemStats::OperatingSystemType enum there is a "catch-all" Windows == 0x4000 defined which can be used as a bitmask to recognise, at runtime, any Windows OS with
getOperatingSystemType() & Windows) != 0
The same can't be done with a hypothetical MacOSX = 0x1000 enum value because Android == 0x3000 and a simple bitwise AND would match that too. However, you could do
getOperatingSystemType() & MacOSX) == MacOSX
Which it admittedly a bit clunky but can always be wrapped in a little helper function. Or perhaps a getOperatingSystemClass() function that switches over the full OS type and only returns Linux, Android, iOS, MacOSX, Windows or UnknownOS?
Is there a reason that MacOSX is not given a catch-all like this that's waiting to trip me up?