26 constexpr operator uint32_t()
const {
27 return (
static_cast<uint32_t
>(
major) << 16) |
static_cast<uint32_t
>(
minor);
31 return static_cast<uint32_t
>(*this) >=
static_cast<uint32_t
>(other);
35 return static_cast<uint32_t
>(*this) <=
static_cast<uint32_t
>(other);
39 return static_cast<uint32_t
>(*this) >
static_cast<uint32_t
>(other);
43 return static_cast<uint32_t
>(*this) <
static_cast<uint32_t
>(other);
47 return static_cast<uint32_t
>(*this) ==
static_cast<uint32_t
>(other);
51 return static_cast<uint32_t
>(*this) !=
static_cast<uint32_t
>(other);
55 return std::to_string(
major) +
"." + std::to_string(
minor);
58 constexpr operator std::string()
const {
79 explicit constexpr BashVersion(std::string_view version_string) {
80 uint16_t* current = &
major;
83 for (
const auto& c : version_string) {
86 value = (value * 10) + (c -
'0');
89 if (current == &
minor)
90 throw std::invalid_argument(
"Invalid Bash version: " + std::string(version_string));
96 throw std::invalid_argument(
"Invalid Bash version: " + std::string(version_string));
Represents a Bash version to target for code generation.
Definition BashVersion.h:22
constexpr BashVersion & operator=(const BashVersion &)=default
uint16_t minor
Definition BashVersion.h:24
constexpr BashVersion(BashVersion &&)=default
uint16_t major
Definition BashVersion.h:23
constexpr bool operator<=(const BashVersion &other) const
Definition BashVersion.h:34
constexpr ~BashVersion()=default
constexpr std::string to_string() const
Definition BashVersion.h:54
constexpr bool operator==(const BashVersion &other) const
Definition BashVersion.h:46
constexpr BashVersion & operator=(BashVersion &&)=default
constexpr bool operator<(const BashVersion &other) const
Definition BashVersion.h:42
constexpr bool operator!=(const BashVersion &other) const
Definition BashVersion.h:50
constexpr BashVersion(uint16_t major, uint16_t minor)
Definition BashVersion.h:69
constexpr bool operator>(const BashVersion &other) const
Definition BashVersion.h:38
constexpr BashVersion()=default
constexpr BashVersion(std::string_view version_string)
Constructs a BashVersion from a string in the format "major.minor" (e.g., "5.2")
Definition BashVersion.h:79
constexpr BashVersion(const BashVersion &)=default
constexpr bool operator>=(const BashVersion &other) const
Definition BashVersion.h:30