CVB++ 15.0
version.hpp
1#pragma once
2
3#include "global.hpp"
4
5#include <cstdint>
6
7namespace Cvb
8{
9
10 CVB_BEGIN_INLINE_NS
11
13 struct Version
14 {
15 std::uint8_t Major;
16 std::uint8_t Minor;
17 std::uint8_t SubMinor;
18 };
19
20 inline constexpr bool operator==(const Version &lhs, const Version &rhs) noexcept
21 {
22 return lhs.Major == rhs.Major && lhs.Minor == rhs.Minor && lhs.SubMinor == rhs.SubMinor;
23 }
24
25 inline constexpr bool operator!=(const Version &lhs, const Version &rhs) noexcept
26 {
27 return !operator==(lhs, rhs);
28 }
29
30 inline constexpr bool operator>(const Version &lhs, const Version &rhs) noexcept
31 {
32 return lhs.Major > rhs.Major
33 || (lhs.Major == rhs.Major
34 && (lhs.Minor > rhs.Minor || (lhs.Minor == rhs.Minor && lhs.SubMinor > rhs.SubMinor)));
35 }
36
37 inline constexpr bool operator<(const Version &lhs, const Version &rhs) noexcept
38 {
39 return operator>(rhs, lhs);
40 }
41
42 inline constexpr bool operator>=(const Version &lhs, const Version &rhs) noexcept
43 {
44 return !operator<(lhs, rhs);
45 }
46
47 inline constexpr bool operator<=(const Version &lhs, const Version &rhs) noexcept
48 {
49 return operator>=(rhs, lhs);
50 }
51
52 CVB_END_INLINE_NS
53
54} // namespace Cvb
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
Class representing a Semantic Version in Major.Minor.SubMinor format.
Definition version.hpp:14