xtd 0.2.0
Loading...
Searching...
No Matches
version.hpp
Go to the documentation of this file.
1
4#pragma once
5#include "icomparable.hpp"
6#include "string.hpp"
7
9#if defined(major)
10/*
11# if defined(_MSC_VER) && __cplusplus < 202302L
12# pragma message("The macro `major` is defined. If you include the `sys/sysmacros.h` filev, please undef the 'major' macro before including `xtd/version`. xtd will undef the `major` macro.")
13# else
14# warning "The macro `major` is defined. If you include the `sys/sysmacros.h` file or other, please undef the 'major' macro before including `xtd/version`. xtd will undef the `major` macro."
15# endif
16 */
17# undef major
18#endif
19
20#if defined(minor)
21/*
22# if defined(_MSC_VER) && __cplusplus < 202302L
23# pragma message("The macro `minor` is defined. If you include the `sys/sysmacros.h` file or other, please undef the 'minor' macro before including `xtd/version`. xtd will undef the `minor` macro.")
24# else
25# warning "The macro `minor` is defined. If you include the `sys/sysmacros.h` file or other, please undef the 'minor' macro before including `xtd/version`. xtd will undef the `minor` macro."
26# endif
27 */
28# undef minor
29#endif
31
33namespace xtd {
114 class version final : public object, public icomparable<version>, public xtd::iequatable<version> {
115 public:
117
127 version() noexcept = default;
138 explicit version(const xtd::string& version);
182
184 version(const version&) noexcept = default;
185 version& operator =(const version&) noexcept = default;
187
189
194 int32 build() const noexcept;
195
199 int32 major() const noexcept;
200
204 int16 major_revision() const noexcept;
205
209 int32 minor() const noexcept;
210
214 int16 minor_revision() const noexcept;
215
219 int32 revision() const noexcept;
221
223
240 int32 compare_to(const version& version) const noexcept override;
241
242 using object::equals;
243 bool equals(const version& v) const noexcept override;
244
249 xtd::string to_string() const noexcept override;
262 xtd::string to_string(size_t field_count) const;
264
266
279 static version parse(const xtd::string& input);
280
289 static bool try_parse(const xtd::string& input, version& result) noexcept;
291
292 private:
293 int32 major_ = 0;
294 int32 minor_ = 0;
295 int32 build_ = -1;
296 int32 revision_ = -1;
297 };
298}
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.hpp:21
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:42
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition version.hpp:114
int32 major() const noexcept
Gets the value of the major component of the version number for the current xtd::version object.
bool equals(const version &v) const noexcept override
Indicates whether the current object is equal to another object of the same type.
int32 minor() const noexcept
Gets the value of the minor component of the version number for the current xtd::version object.
version() noexcept=default
Initializes a new instance of the xtd::version class.
static bool try_parse(const xtd::string &input, version &result) noexcept
Tries to convert the string representation of a version number to an equivalent xtd::version object,...
int16 major_revision() const noexcept
Gets the high 16 bits of the revision number.
int32 build() const noexcept
Gets the value of the build component of the version number for the current xtd::version object.
int32 compare_to(const version &version) const noexcept override
Compares the current xtd::version object to a specified object and returns an indication of their rel...
static version parse(const xtd::string &input)
Converts the string representation of a version number to an equivalent Version object.
xtd::string to_string() const noexcept override
Converts the value of the current xtd::version object to its equivalent xtd::string representation.
int32 revision() const noexcept
Gets the value of the revision component of the version number for the current xtd::version object.
int16 minor_revision() const noexcept
Gets the low 16 bits of the revision number.
int16_t int16
Represents a 16-bit signed integer.
Definition int16.hpp:23
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
@ v
The V key.
Contains xtd::icomparable interface.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10
Contains xtd::string alias.