9template<concepts::Integer T>
18 constexpr auto valid() const ->
bool {
return !m_invalid; }
19 constexpr auto invalid() const ->
bool {
return m_invalid; }
22 m_invalid |=
value.m_invalid;
23 m_invalid |= __builtin_add_overflow(m_value,
value.m_value, &m_value);
28 m_invalid |=
value.m_invalid;
29 m_invalid |= __builtin_sub_overflow(m_value,
value.m_value, &m_value);
34 m_invalid |=
value.m_invalid;
35 m_invalid |= __builtin_mul_overflow(m_value,
value.m_value, &m_value);
40 m_invalid |=
value.m_invalid;
47 m_invalid |=
value.m_value == 0;
49 m_value /=
value.m_value;
56 m_invalid |=
value.m_invalid;
63 m_invalid |=
value.m_value == 0;
65 m_value %=
value.m_value;
72 m_invalid |=
value.m_invalid;
73 m_value &=
value.m_value;
78 m_invalid |=
value.m_invalid;
79 m_value |=
value.m_value;
84 m_invalid |=
value.m_invalid;
85 m_value ^=
value.m_value;
90 m_invalid |=
value.m_invalid;
96 m_value <<=
value.m_value;
103 m_invalid |=
value.m_invalid;
109 m_value >>=
value.m_value;
143 result.m_invalid =
true;
214 bool m_invalid {
false };
constexpr auto operator++() -> Checked &
Definition checked.h:115
constexpr auto value() const -> Optional< T >
Definition checked.h:16
constexpr auto operator--(int) -> Checked
Definition checked.h:131
constexpr auto operator*=(Checked value) -> Checked &
Definition checked.h:33
constexpr auto operator+=(Checked value) -> Checked &
Definition checked.h:21
constexpr auto operator<<=(Checked value) -> Checked &
Definition checked.h:89
constexpr auto operator-=(Checked value) -> Checked &
Definition checked.h:27
constexpr auto operator^=(Checked value) -> Checked &
Definition checked.h:83
constexpr auto operator&(Checked value) const -> Checked
Definition checked.h:152
constexpr auto operator-() const -> Checked
Definition checked.h:138
constexpr auto operator--() -> Checked &
Definition checked.h:120
constexpr auto operator/(Checked value) const -> Checked
Definition checked.h:200
constexpr auto operator++(int) -> Checked
Definition checked.h:125
constexpr auto operator&=(Checked value) -> Checked &
Definition checked.h:71
constexpr auto operator<<(Checked value) const -> Checked
Definition checked.h:170
constexpr auto operator-(Checked value) const -> Checked
Definition checked.h:188
constexpr auto invalid() const -> bool
Definition checked.h:19
constexpr auto operator%=(Checked value) -> Checked &
Definition checked.h:55
constexpr auto operator|(Checked value) const -> Checked
Definition checked.h:158
constexpr Checked(T value)
Definition checked.h:14
constexpr auto operator^(Checked value) const -> Checked
Definition checked.h:164
constexpr auto operator+(Checked value) const -> Checked
Definition checked.h:182
constexpr auto operator*(Checked value) const -> Checked
Definition checked.h:194
constexpr auto operator~() const -> Checked
Definition checked.h:150
constexpr auto operator|=(Checked value) -> Checked &
Definition checked.h:77
constexpr auto operator>>(Checked value) const -> Checked
Definition checked.h:176
constexpr auto valid() const -> bool
Definition checked.h:18
constexpr auto operator>>=(Checked value) -> Checked &
Definition checked.h:102
constexpr auto operator%(Checked value) const -> Checked
Definition checked.h:206
constexpr auto operator+() const -> Checked
Definition checked.h:137
constexpr auto operator/=(Checked value) -> Checked &
Definition checked.h:39
Definition optional_forward_declaration.h:5
Definition language.h:238
Definition zstring_parser.h:9
constexpr auto nullopt
Definition nullopt.h:15
Definition numeric_limits.h:7