24#if !defined(EED99FD2335944DC974769575687D215)
25#define EED99FD2335944DC974769575687D215
27#include <miktex/Core/config.h>
32MIKTEX_CORE_BEGIN_NAMESPACE;
38 VersionNumber() =
default;
41 VersionNumber(
const VersionNumber& other) =
default;
44 VersionNumber& operator=(
const VersionNumber& other) =
default;
47 VersionNumber(VersionNumber&& other) =
default;
50 VersionNumber& operator=(VersionNumber&& other) =
default;
53 virtual ~VersionNumber() =
default;
71 n1((static_cast<unsigned long>(highWord) >> 16) & 0xffff),
72 n2(static_cast<unsigned long>(highWord) & 0xffff),
73 n3((static_cast<unsigned long>(lowWord) >> 16) & 0xffff),
74 n4(static_cast<unsigned long>(lowWord) & 0xffff)
83 *
this =
Parse(versionString);
91 *
this =
Parse(versionString);
115 unsigned long w = (
n2 & 0xffff);
116 w |=
static_cast<unsigned long>(
n1 & 0xffff) << 16;
117 return static_cast<long>(w);
125 unsigned long w = (
n4 & 0xffff);
126 w |=
static_cast<unsigned long>(
n3 & 0xffff) << 16;
127 return static_cast<long>(w);
140 if (cmp1 < 0 || (cmp1 == 0 && cmp2 < 0))
144 else if (cmp1 > 0 || (cmp1 == 0 && cmp2 > 0))
164 static MIKTEXCORECEEAPI(
bool)
TryParse(
const std::string& versionString, VersionNumber& versionNumber);
170 static MIKTEXCORECEEAPI(VersionNumber)
Parse(
const std::string& versionString);
192inline std::ostream& operator<<(std::ostream& os,
const VersionNumber& v)
194 return os << v.ToString();
197MIKTEX_CORE_END_NAMESPACE;
bool operator==(const VersionNumber &v1, const VersionNumber &v2)
Definition VersionNumber.h:177
An instance of this struct represents a version number.
Definition VersionNumber.h:36
unsigned n4
The fourth part of the version nimber. Usually 0.
Definition VersionNumber.h:108
unsigned n2
The second part of the version number. Usually the minor version.
Definition VersionNumber.h:100
unsigned n1
The first part of the version number. Usually the major version.
Definition VersionNumber.h:96
long GetHighWord() const
Definition VersionNumber.h:113
int CompareTo(const VersionNumber &other) const
Definition VersionNumber.h:136
VersionNumber(unsigned n1, unsigned n2, unsigned n3, unsigned n4)
Definition VersionNumber.h:61
VersionNumber(const char *versionString)
Definition VersionNumber.h:89
long GetLowWord() const
Definition VersionNumber.h:123
VersionNumber(const std::string &versionString)
Definition VersionNumber.h:81
static VersionNumber Parse(const std::string &versionString)
unsigned n3
The third part of the version number. Usually the j2000 number.
Definition VersionNumber.h:104
std::string ToString() const
static bool TryParse(const std::string &versionString, VersionNumber &versionNumber)