LibreOffice Module onlineupdate (master) 1
|
Compares two VersionParts. More...
Namespaces | |
namespace | detail |
Classes | |
struct | AddLvalueReference |
AddLvalueReference adds an lvalue & reference to T if one isn't already present. More... | |
struct | AddRvalueReference |
AddRvalueReference adds an rvalue && reference to T if one isn't already present. More... | |
struct | Conditional |
Conditional selects a class between two, depending on a given boolean value. More... | |
struct | Conditional< false, A, B > |
struct | EnableIf |
EnableIf is a struct containing a typedef of T if and only if B is true. More... | |
struct | EnableIf< true, T > |
struct | IntegralConstant |
Helper class used as a base for various type traits, exposed publicly because <type_traits> exposes it as well. More... | |
struct | IsArithmetic |
IsArithmetic determines whether a type is arithmetic. More... | |
struct | IsArray |
IsArray determines whether a type is an array type, of known or unknown length. More... | |
struct | IsBaseOf |
struct | IsClass |
IsClass determines whether a type is a class type (but not a union). More... | |
struct | IsConst |
IsConst determines whether a type is const or not. More... | |
struct | IsConst< const T > |
struct | IsConvertible |
IsConvertible determines whether a value of type From will implicitly convert to a value of type To. More... | |
struct | IsConvertible< A, void > |
struct | IsConvertible< void, B > |
struct | IsConvertible< void, void > |
struct | IsEmpty |
IsEmpty determines whether a type is a class (but not a union) that is empty. More... | |
struct | IsEnum |
IsEnum determines whether a type is an enum type. More... | |
struct | IsFloatingPoint |
IsFloatingPoint determines whether a type is a floating point type (float, double, long double). More... | |
struct | IsIntegral |
IsIntegral determines whether a type is an integral type. More... | |
struct | IsLvalueReference |
IsLvalueReference determines whether a type is an lvalue reference. More... | |
struct | IsLvalueReference< T & > |
struct | IsPod |
Traits class for identifying POD types. More... | |
struct | IsPod< bool > |
struct | IsPod< char > |
struct | IsPod< double > |
struct | IsPod< float > |
struct | IsPod< int > |
struct | IsPod< long > |
struct | IsPod< long long > |
struct | IsPod< short > |
struct | IsPod< signed char > |
struct | IsPod< T * > |
struct | IsPod< unsigned char > |
struct | IsPod< unsigned int > |
struct | IsPod< unsigned long > |
struct | IsPod< unsigned long long > |
struct | IsPod< unsigned short > |
struct | IsPod< wchar_t > |
struct | IsPointer |
IsPointer determines whether a type is a possibly-CV-qualified pointer type (but not a pointer-to-member type). More... | |
struct | IsReference |
IsReference determines whether a type is an lvalue or rvalue reference. More... | |
struct | IsRvalueReference |
IsRvalueReference determines whether a type is an rvalue reference. More... | |
struct | IsRvalueReference< T && > |
struct | IsSame |
IsSame tests whether two types are the same type. More... | |
struct | IsSame< T, T > |
struct | IsSigned |
IsSigned determines whether a type is a signed arithmetic type. More... | |
struct | IsUnsigned |
IsUnsigned determines whether a type is an unsigned arithmetic type. More... | |
struct | IsVoid |
IsVoid determines whether a type is void. More... | |
struct | IsVolatile |
IsVolatile determines whether a type is volatile or not. More... | |
struct | IsVolatile< volatile T > |
struct | MakeSigned |
MakeSigned produces the corresponding signed integer type for a given integral type T, with the const/volatile qualifiers of T. More... | |
struct | MakeUnsigned |
MakeUnsigned produces the corresponding unsigned integer type for a given integral type T, with the const/volatile qualifiers of T. More... | |
struct | RemoveConst |
RemoveConst removes top-level const qualifications on a type. More... | |
struct | RemoveConst< const T > |
struct | RemoveCV |
RemoveCV removes top-level const and volatile qualifications on a type. More... | |
struct | RemoveExtent |
RemoveExtent produces either the type of the elements of the array T, or T itself. More... | |
struct | RemoveExtent< T[]> |
struct | RemoveExtent< T[N]> |
struct | RemovePointer |
Produces the pointed-to type if a pointer is provided, else returns the input type. More... | |
struct | RemoveReference |
Converts reference types to the underlying types. More... | |
struct | RemoveReference< T & > |
struct | RemoveReference< T && > |
struct | RemoveVolatile |
RemoveVolatile removes top-level volatile qualifications on a type. More... | |
struct | RemoveVolatile< volatile T > |
struct | Version |
Typedefs | |
typedef IntegralConstant< bool, true > | TrueType |
Convenient aliases. More... | |
typedef IntegralConstant< bool, false > | FalseType |
Functions | |
int32_t | CompareVersions (const char *aStrA, const char *aStrB) |
template<typename T > | |
AddRvalueReference< T >::Type | DeclVal () |
DeclVal simplifies the definition of expressions which occur as unevaluated operands. More... | |
Compares two VersionParts.
In order to compare version numbers in Mozilla, you need to use the mozilla::Version class.
You can construct an object of this type by passing in a string version number to the constructor. Objects of this type can be compared using the standard comparison operators.
For example, let's say that you want to make sure that a given version number is not older than 15.a2. Here's how you would write a function to do that.
bool IsVersionValid(const char* version) { return mozilla::Version("15.a2") <= mozilla::Version(version); }
Or, since Version's constructor is implicit, you can simplify this code:
bool IsVersionValid(const char* version) { return mozilla::Version("15.a2") <= version; }
On Windows, if your version strings are wide characters, you should use the mozilla::VersionW variant instead. The semantics of that class is the same as Version.
typedef IntegralConstant<bool, false> mozilla::FalseType |
Definition at line 44 of file TypeTraits.h.
typedef IntegralConstant<bool, true> mozilla::TrueType |
Convenient aliases.
Definition at line 43 of file TypeTraits.h.
int32_t mozilla::CompareVersions | ( | const char * | aStrA, |
const char * | aStrB | ||
) |
Definition at line 389 of file nsVersionComparator.cxx.
References a, CompareVP(), ParseVP(), and result.
Referenced by mozilla::Version::operator!=(), mozilla::Version::operator<(), mozilla::Version::operator<=(), mozilla::Version::operator==(), mozilla::Version::operator>(), mozilla::Version::operator>=(), and ArchiveReader::VerifyProductInformation().
AddRvalueReference< T >::Type mozilla::DeclVal | ( | ) |
DeclVal simplifies the definition of expressions which occur as unevaluated operands.
It converts T to a reference type, making it possible to use in decltype expressions even if T does not have a default constructor, e.g.: decltype(DeclVal<TWithNoDefaultConstructor>().foo())