On Sat, 13 Aug 2011 14:23:35 +0300, Jonathan M Davis <jmdavisp...@gmx.com>
wrote:
It does on at least some distros.
TIL...
Except that you need useful, understandable version numbers to make
sense. 2.6
and 3.0 are virtually meaningless on Linux (which would be the major and
minor
number). Maybe the minor number will mean something with the 3 series,
but
we've had 2.6 for years now, and there's an enormous difference between
2.6.3
and 2.6.33.
Perhaps make the version number a dynamic array?
Even worse, major and minor numbers don't mean _anything_ on Windows.
What are
you going to give? The NT kernel version?
By the way, the Windows versions in the OS enum are very incomplete - only
major client versions are listed.
A rather large variety of Windows versions and editions exists, see for
example:
http://msdn.microsoft.com/en-us/library/ms724429(v=vs.85).aspx
http://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions
Considering the large variety, I think it would be a mistake to try to
keep track of all Windows versions in an enum. I would like to suggest to
replace all Windows versions in the OS enum with a single "Windows"
entity, and add some constants or enums for common Windows versions to
allow comparisons. For example:
if (os_major > OS_MAJOR_WINDOWS_XP ||
(os_major == OS_MAJOR_WINDOWS_XP && os_minor >= OS_MINOR_WINDOWS_XP))
{
// This is Windows XP or higher
}
Going even further, a version structure supporting comparison operators
would make the above simpler. (Or are regular dynamic arrays suitable for
this?)
--
Best regards,
Vladimir mailto:vladi...@thecybershadow.net