Skip to content

Commit 95e9fd3

Browse files
committed
Revert "to_big/to_little use type constraint to guard inputs."
This reverts commit 506cdb5.
1 parent 7d21df5 commit 95e9fd3

2 files changed

Lines changed: 12 additions & 24 deletions

File tree

include/bitcoin/system/endian/integrals.hpp

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,30 +37,26 @@ namespace system {
3737

3838
template <size_t Offset = zero, typename Byte, size_t Size, typename Integral,
3939
if_one_byte<Byte> = true,
40-
if_integral_integer<Integral> = true,
41-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)> = true>
40+
if_integral_integer<Integral> = true>
4241
constexpr void to_big(std_array<Byte, Size>& data, Integral value) NOEXCEPT;
4342

4443
template <size_t Offset = zero, typename Byte, size_t Size, typename Integral,
4544
if_one_byte<Byte> = true,
46-
if_integral_integer<Integral> = true,
47-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)> = true>
45+
if_integral_integer<Integral> = true>
4846
constexpr void to_little(std_array<Byte, Size>& data, Integral value) NOEXCEPT;
4947

5048
/// from_big/from_little (by reference, implicit, offsettable).
5149
/// ---------------------------------------------------------------------------
5250

5351
template <size_t Offset = zero, typename Integral, typename Byte, size_t Size,
5452
if_one_byte<Byte> = true,
55-
if_integral_integer<Integral> = true,
56-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)> = true>
53+
if_integral_integer<Integral> = true>
5754
constexpr void from_big(Integral& value,
5855
const std_array<Byte, Size>& data) NOEXCEPT;
5956

6057
template <size_t Offset = zero, typename Integral, typename Byte, size_t Size,
6158
if_one_byte<Byte> = true,
62-
if_integral_integer<Integral> = true,
63-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)> = true>
59+
if_integral_integer<Integral> = true>
6460
constexpr void from_little(Integral& value,
6561
const std_array<Byte, Size>& data) NOEXCEPT;
6662

@@ -69,14 +65,12 @@ constexpr void from_little(Integral& value,
6965

7066
template<typename Integral, size_t Offset = zero, typename Byte, size_t Size,
7167
if_one_byte<Byte> = true,
72-
if_integral_integer<Integral> = true,
73-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)> = true>
68+
if_integral_integer<Integral> = true>
7469
constexpr Integral from_big(const std_array<Byte, Size>& data) NOEXCEPT;
7570

7671
template<typename Integral, size_t Offset = zero, typename Byte, size_t Size,
7772
if_one_byte<Byte> = true,
78-
if_integral_integer<Integral> = true,
79-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)> = true>
73+
if_integral_integer<Integral> = true>
8074
constexpr Integral from_little(const std_array<Byte, Size>& data) NOEXCEPT;
8175

8276
/// to_big/to_little (by value, implicit).

include/bitcoin/system/impl/endian/integrals.ipp

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ namespace system {
3838

3939
template <size_t Offset, typename Byte, size_t Size, typename Integral,
4040
if_one_byte<Byte>,
41-
if_integral_integer<Integral>,
42-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)>>
41+
if_integral_integer<Integral>>
4342
constexpr void to_big(std_array<Byte, Size>& data, Integral value) NOEXCEPT
4443
{
4544
BC_PUSH_WARNING(NO_ARRAY_INDEXING)
@@ -78,8 +77,7 @@ constexpr void to_big(std_array<Byte, Size>& data, Integral value) NOEXCEPT
7877

7978
template <size_t Offset, typename Byte, size_t Size, typename Integral,
8079
if_one_byte<Byte>,
81-
if_integral_integer<Integral>,
82-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)>>
80+
if_integral_integer<Integral>>
8381
constexpr void to_little(std_array<Byte, Size>& data, Integral value) NOEXCEPT
8482
{
8583
BC_PUSH_WARNING(NO_ARRAY_INDEXING)
@@ -121,8 +119,7 @@ constexpr void to_little(std_array<Byte, Size>& data, Integral value) NOEXCEPT
121119

122120
template <size_t Offset, typename Integral, typename Byte, size_t Size,
123121
if_one_byte<Byte>,
124-
if_integral_integer<Integral>,
125-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)>>
122+
if_integral_integer<Integral>>
126123
constexpr void from_big(Integral& value,
127124
const std_array<Byte, Size>& data) NOEXCEPT
128125
{
@@ -165,8 +162,7 @@ constexpr void from_big(Integral& value,
165162

166163
template <size_t Offset, typename Integral, typename Byte, size_t Size,
167164
if_one_byte<Byte>,
168-
if_integral_integer<Integral>,
169-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)>>
165+
if_integral_integer<Integral>>
170166
constexpr void from_little(Integral& value,
171167
const std_array<Byte, Size>& data) NOEXCEPT
172168
{
@@ -212,8 +208,7 @@ constexpr void from_little(Integral& value,
212208

213209
template<typename Integral, size_t Offset, typename Byte, size_t Size,
214210
if_one_byte<Byte>,
215-
if_integral_integer<Integral>,
216-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)>>
211+
if_integral_integer<Integral>>
217212
constexpr Integral from_big(const std_array<Byte, Size>& data) NOEXCEPT
218213
{
219214
Integral out{};
@@ -223,8 +218,7 @@ constexpr Integral from_big(const std_array<Byte, Size>& data) NOEXCEPT
223218

224219
template<typename Integral, size_t Offset, typename Byte, size_t Size,
225220
if_one_byte<Byte>,
226-
if_integral_integer<Integral>,
227-
if_not_lesser<safe_subtract(Size, Offset), sizeof(Integral)>>
221+
if_integral_integer<Integral>>
228222
constexpr Integral from_little(const std_array<Byte, Size>& data) NOEXCEPT
229223
{
230224
Integral out{};

0 commit comments

Comments
 (0)