xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
version.h
Go to the documentation of this file.
1 #pragma once
5 #include "icomparable.h"
6 #include "ustring.h"
7 
9 #undef major
10 #undef minor
12 
14 namespace xtd {
93  class version final : public object, public icomparable<version> {
94  public:
103  version() noexcept = default;
126  version(int32_t major, int32_t minor);
139  version(int32_t major, int32_t minor, int32_t build);
156  version(int32_t major, int32_t minor, int32_t build, int32_t revision);
157 
159  version(const version&) noexcept = default;
160  version& operator=(const version&) noexcept = default;
161 
162  bool operator==(const version& v) const noexcept;
163  bool operator!=(const version& v) const noexcept;
165 
169  int32_t build() const noexcept;
170 
174  int32_t major() const noexcept;
175 
179  int16_t major_revision() const noexcept;
180 
184  int32_t minor() const noexcept;
185 
189  int16_t minor_revision() const noexcept;
190 
194  int32_t revision() const noexcept;
195 
211  int32_t compare_to(const object& version) const noexcept override;
227  int32_t compare_to(const version& version) const noexcept override;
228 
240  static version parse(const xtd::ustring& input);
241 
246  xtd::ustring to_string() const noexcept override;
259  xtd::ustring to_string(size_t field_count) const;
260 
269  static bool try_parse(const xtd::ustring& input, version& result) noexcept;
270 
271  private:
272  int32_t major_ = 0;
273  int32_t minor_ = 0;
274  int32_t build_ = -1;
275  int32_t revision_ = -1;
276  };
277 
279  std::ostream& operator <<(std::ostream& os, const version& ver) noexcept;
281 }
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition: icomparable.h:18
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition: object.h:26
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition: version.h:93
int16_t minor_revision() const noexcept
Gets the low 16 bits of the revision number.
static bool try_parse(const xtd::ustring &input, version &result) noexcept
Tries to convert the string representation of a version number to an equivalent xtd::version object,...
version() noexcept=default
Initializes a new instance of the xtd::version class.
int32_t compare_to(const object &version) const noexcept override
Compares the current xtd::version object to a specified object and returns an indication of their rel...
int32_t minor() const noexcept
Gets the value of the minor component of the version number for the current xtd::version object.
int32_t major() const noexcept
Gets the value of the major component of the version number for the current xtd::version object.
int32_t build() const noexcept
Gets the value of the build component of the version number for the current xtd::version object.
int16_t major_revision() const noexcept
Gets the high 16 bits of the revision number.
xtd::ustring to_string() const noexcept override
Converts the value of the current xtd::version object to its equivalent xtd::ustring representation.
static version parse(const xtd::ustring &input)
Converts the string representation of a version number to an equivalent Version object.
int32_t revision() const noexcept
Gets the value of the revision component of the version number for the current xtd::version object.
Contains xtd::icomparable interface.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::ustring class.