Used library comparison functions to compare pointers

This commit is contained in:
Krystian Stasiowski
2020-02-01 15:22:50 -05:00
parent c3ea8a976d
commit ad4a2f191b
3 changed files with 41 additions and 146 deletions

View File

@ -363,15 +363,7 @@ insert(
const auto s = &*first;
BOOST_STATIC_STRING_THROW_IF(
count > max_size() - curr_size, std::length_error{"count > max_size() - size()"});
// Makes this more constexpr friendly if we can use is_constant_evaluated
const bool inside =
#ifdef BOOST_STATIC_STRING_USE_IS_CONST_EVAL
std::is_constant_evaluated() ?
detail::is_inside(curr_data, curr_data + curr_size, s) :
s <= &curr_data[curr_size] && s >= curr_data;
#else
s <= &curr_data[curr_size] && s >= curr_data;
#endif
const bool inside = detail::is_inside(curr_data, curr_data + curr_size, s);
if (!inside || (inside && ((s - curr_data) + count <= index)))
{
Traits::move(&curr_data[index + count], &curr_data[index], curr_size - index + 1);
@ -669,15 +661,7 @@ replace(
curr_size - (std::min)(n1, curr_size - pos) >= max_size() - n2,
std::length_error{"replaced string exceeds max_size()"});
n1 = (std::min)(n1, curr_size - pos);
// Makes this more constexpr friendly if we can use is_constant_evaluated
const bool inside =
#ifdef BOOST_STATIC_STRING_USE_IS_CONST_EVAL
std::is_constant_evaluated() ?
detail::is_inside(curr_data, curr_data + curr_size, s) :
s <= &curr_data[curr_size] && s >= curr_data;
#else
s <= &curr_data[curr_size] && s >= curr_data;
#endif
const bool inside = detail::is_inside(curr_data, curr_data + curr_size, s);
if (inside && size_type(s - curr_data) == pos && n1 == n2)
return *this;
if (!inside || (inside && ((s - curr_data) + n2 <= pos)))