Skip to content

Commit c185d89

Browse files
committed
DRY
1 parent be91266 commit c185d89

File tree

1 file changed

+9
-26
lines changed

1 file changed

+9
-26
lines changed

include/boost/decimal/detail/memcpy.hpp

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,7 @@ BOOST_DECIMAL_CONSTEXPR char* memcpy(char* dest, const char* src, std::size_t co
8585
{
8686
if (BOOST_DECIMAL_IS_CONSTANT_EVALUATED(count))
8787
{
88-
for (std::size_t i = 0; i < count; ++i)
89-
{
90-
*(dest + i) = *(src + i);
91-
}
92-
93-
return dest;
88+
return static_cast<char*>(impl::memcpy_impl(dest, src, count));
9489
}
9590
else
9691
{
@@ -114,12 +109,7 @@ BOOST_DECIMAL_CONSTEXPR char* memset(char* dest, int ch, std::size_t count)
114109
{
115110
if (BOOST_DECIMAL_IS_CONSTANT_EVALUATED(count))
116111
{
117-
for (std::size_t i = 0; i < count; ++i)
118-
{
119-
*(dest + i) = static_cast<char>(ch);
120-
}
121-
122-
return dest;
112+
return static_cast<char*>(impl::memset_impl(dest, ch, count));
123113
}
124114
else
125115
{
@@ -131,12 +121,7 @@ BOOST_DECIMAL_CONSTEXPR char* memmove(char* dest, const char* src, std::size_t c
131121
{
132122
if (BOOST_DECIMAL_IS_CONSTANT_EVALUATED(count))
133123
{
134-
for (std::size_t i = 0; i < count; ++i)
135-
{
136-
*(dest + i) = *(src + i);
137-
}
138-
139-
return dest;
124+
return static_cast<char*>(impl::memmove_impl(dest, src, count));
140125
}
141126
else
142127
{
@@ -146,21 +131,19 @@ BOOST_DECIMAL_CONSTEXPR char* memmove(char* dest, const char* src, std::size_t c
146131

147132
#else // No consteval detection
148133

149-
#define BOOST_DECIMAL_CONSTEXPR inline
150-
151-
BOOST_DECIMAL_CONSTEXPR void* memcpy(void* dest, const void* src, std::size_t count)
134+
BOOST_DECIMAL_CONSTEXPR char* memcpy(char* dest, const char* src, std::size_t count)
152135
{
153-
return std::memcpy(dest, src, count);
136+
return impl::memcpy_impl(dest, src, count);
154137
}
155138

156-
BOOST_DECIMAL_CONSTEXPR void* memset(void* dest, int ch, std::size_t count)
139+
BOOST_DECIMAL_CONSTEXPR char* memset(char* dest, int ch, std::size_t count)
157140
{
158-
return std::memset(dest, ch, count);
141+
return impl::memset_impl(dest, ch, count);
159142
}
160143

161-
BOOST_DECIMAL_CONSTEXPR void* memmove(void* dest, const void* src, std::size_t count)
144+
BOOST_DECIMAL_CONSTEXPR char* memmove(char* dest, const char* src, std::size_t count)
162145
{
163-
return std::memmove(dest, src, count);
146+
return impl::memmove_impl(dest, src, count);
164147
}
165148

166149
#endif

0 commit comments

Comments
 (0)