52 version(uint32_t aMajor, uint32_t aMinor, uint32_t aMaintenance, uint32_t aBuild = 0,
const std::string& aName =
"") :
53 iMajor(aMajor), iMinor(aMinor), iMaintenance(aMaintenance), iBuild(aBuild), iName(aName)
56 version(
const std::string& aVersionString =
"") :
57 iMajor(0), iMinor(0), iMaintenance(0), iBuild(0), iName(
"")
81 return std::make_tuple(iMajor, iMinor, iMaintenance, iBuild) < std::make_tuple(aOther.iMajor, aOther.iMinor, iMaintenance, aOther.iBuild);
85 return aOther < *
this;
89 return iMajor == aOther.iMajor && iMinor == aOther.iMinor && iMaintenance == aOther.iMaintenance && iBuild == aOther.iBuild;
117 uint32_t iMaintenance;
122 template <
typename Elem,
typename Traits>
123 inline std::basic_ostream<Elem, Traits>& operator<<(std::basic_ostream<Elem, Traits>& aStream,
const version& aVersion)
125 aStream << aVersion.version_major() <<
"." << aVersion.version_minor() <<
"." << aVersion.version_maintenance() <<
"." << aVersion.version_build();
126 if (!aVersion.version_name().empty())
127 aStream <<
" " << aVersion.version_name();
uint32_t version_build() const
uint32_t version_major() const
const i_string & version_name() const
version(const std::string &aVersionString="")
version(const i_version &aOther)
bool operator<(const version &aOther) const
bool operator==(const version &aOther) const
uint32_t version_maintenance() const
version(uint32_t aMajor, uint32_t aMinor, uint32_t aMaintenance, uint32_t aBuild=0, const std::string &aName="")
uint32_t version_minor() const
bool operator>(const version &aOther) const
FwdIter1 tokens(FwdIter1 aFirst, FwdIter1 aLast, FwdIter2 aDelimeterFirst, FwdIter2 aDelimiterLast, ResultContainer &aTokens, std::size_t aMaxTokens=0, bool aSkipEmptyTokens=true, bool aDelimeterIsSubsequence=false)
uint32_t string_to_uint32(const std::basic_string_view< CharT, Traits > &aStringView)