xtd 0.2.0
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
245 bool equals(const object& obj) const noexcept override;
249 bool equals(const version& v) const noexcept override;
250
253 xtd::size get_hash_code() const noexcept override;
254
259 xtd::string to_string() const noexcept override;
272 xtd::string to_string(size_t field_count) const;
274
276
289 static version parse(const xtd::string& input);
290
299 static bool try_parse(const xtd::string& input, version& result) noexcept;
301
302 private:
303 int32 major_ = 0;
304 int32 minor_ = 0;
305 int32 build_ = -1;
306 int32 revision_ = -1;
307 };
308}
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:43
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.
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.
bool equals(const object &obj) const noexcept override
Determines whether the specified object is equal to the current object.
xtd::string to_string() const noexcept override
Converts the value of the current xtd::version object to its equivalent xtd::string representation.
xtd::size get_hash_code() const noexcept override
Serves as a hash function for a particular type.
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
size_t size
Represents a size of any object in bytes.
Definition size.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.