@@ -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