15 , fVerStage{VersionStage::eSTART}
21 : fMajorVer{static_cast<uint8_t> ((fullVersionNumber >> 24) & 0x8f)}
22 , fMinorVer{static_cast<uint8_t> ((fullVersionNumber >> 16) & 0xff)}
23 , fVerStage{static_cast<VersionStage> ((fullVersionNumber >> 13) & 0x07)}
24 , fVerSubStage{static_cast<uint16_t> ((fullVersionNumber >> 1) & 0xfff)}
25 , fFinalBuild{static_cast<bool> (fullVersionNumber & 1)}
27 Assert (fVerSubStage < kMaxVersionSubStage);
29 constexpr Version::Version (uint8_t majorVer, uint8_t minorVer, VersionStage verStage, uint16_t verSubStage,
bool finalBuild)
33 , fVerSubStage{verSubStage}
34 , fFinalBuild{finalBuild}
38 constexpr Binary32BitFullVersionType Version::AsFullVersionNum ()
const
41 return Stroika_Make_FULL_VERSION (fMajorVer, fMinorVer, ((uint8_t)fVerStage), fVerSubStage,
static_cast<int> (fFinalBuild));
45 return AsPrettyVersionString ();
47 constexpr bool Version::operator== (
const Version& rhs)
const
49 return make_signed_t<Binary32BitFullVersionType> (AsFullVersionNum ()) == make_signed_t<Binary32BitFullVersionType> (rhs.AsFullVersionNum ());
51 constexpr strong_ordering Version::operator<=> (
const Version& rhs)
const
53 return make_signed_t<Binary32BitFullVersionType> (AsFullVersionNum ()) <=> make_signed_t<Binary32BitFullVersionType> (rhs.AsFullVersionNum ());
#define Stroika_Make_FULL_VERSION(_Major_, _Minor_, _Stage_, _SubStage_, _FinalBuild_)
String is like std::u32string, except it is much easier to use, often much more space efficient,...
nonvirtual Characters::String ToString() const