|
30 | 30 | // |
31 | 31 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
32 | 32 | // |
33 | | -// $Id:$ |
| 33 | +// $Id: long_uint.h 146 2021-09-04 11:56:58Z ykalmykov $ |
34 | 34 | // |
35 | 35 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
36 | 36 |
|
@@ -75,6 +75,7 @@ class long_uint_t |
75 | 75 | constexpr long_uint_t(type_t value) noexcept; |
76 | 76 | template<typename type_t, std::enable_if_t<std::is_signed_v<type_t>, int> = 0> |
77 | 77 | constexpr long_uint_t(type_t value) noexcept; |
| 78 | + constexpr long_uint_t(bool value) noexcept; |
78 | 79 |
|
79 | 80 | //////////////////////////////////////////////////////////////////////////////////////////////// |
80 | 81 | // public methods |
@@ -195,6 +196,15 @@ constexpr long_uint_t<native_t, size>::long_uint_t(type_t value) noexcept |
195 | 196 | digits[n] = extension; |
196 | 197 | } |
197 | 198 |
|
| 199 | +template<typename native_t, uint_t size> |
| 200 | +constexpr long_uint_t<native_t, size>::long_uint_t(bool value) noexcept |
| 201 | +{ |
| 202 | + digits[0] = value; |
| 203 | + |
| 204 | + for (uint_t n = 1; n < std::size(digits); ++n) |
| 205 | + digits[n] = native_t(0); |
| 206 | +} |
| 207 | + |
198 | 208 |
|
199 | 209 |
|
200 | 210 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
@@ -760,8 +770,6 @@ constexpr long_uint_t<native_t, size> operator%(type_t value1, const long_uint_t |
760 | 770 | template<typename type_t, std::enable_if_t<is_unsigned_v<type_t>, int>> |
761 | 771 | constexpr type_t muldiv(const type_t& value, const type_t& multiplier, const type_t& divider) noexcept |
762 | 772 | { |
763 | | - using long_uint_t = long_uint_t<type_t, 2>; |
764 | | - |
765 | 773 | type_t mul_hi = 0; |
766 | 774 | const type_t mul_lo = mulc(value, multiplier, mul_hi); |
767 | 775 |
|
|
0 commit comments