xtd 0.2.0
Loading...
Searching...
No Matches
version.h
Go to the documentation of this file.
1
4#pragma once
5#include "icomparable.h"
6#include "ustring.h"
7
9#if defined(major)
10# if defined(_MSC_VER) && __cplusplus < 202302L
11# 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.")
12# else
13# 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."
14# endif
15# undef major
16#endif
17
18#if defined(minor)
19# if defined(_MSC_VER) && __cplusplus < 202302L
20# 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.")
21# else
22# 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."
23# endif
24# undef minor
25#endif
27
29namespace xtd {
110 class version final : public object, public icomparable<version>, public xtd::iequatable<version> {
111 public:
113
123 version() noexcept = default;
134 explicit version(const xtd::ustring& version);
178
180 version(const version&) noexcept = default;
181 version& operator =(const version&) noexcept = default;
183
185
190 int32 build() const noexcept;
191
195 int32 major() const noexcept;
196
200 int16 major_revision() const noexcept;
201
205 int32 minor() const noexcept;
206
210 int16 minor_revision() const noexcept;
211
215 int32 revision() const noexcept;
217
219
236 int32 compare_to(const version& version) const noexcept override;
237
238 bool equals(const version& v) const noexcept override;
239
244 xtd::ustring to_string() const noexcept override;
257 xtd::ustring to_string(size_t field_count) const;
259
261
274 static version parse(const xtd::ustring& input);
275
284 static bool try_parse(const xtd::ustring& input, version& result) noexcept;
286
287 private:
288 int32 major_ = 0;
289 int32 minor_ = 0;
290 int32 build_ = -1;
291 int32 revision_ = -1;
292 };
293}
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.h:17
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:18
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:32
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition version.h:110
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.
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.
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...
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 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.
int_least16_t int16
Represents a 16-bit signed integer.
Definition types.h:120
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
@ v
The V key.
Contains xtd::icomparable interface.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::ustring class.