diff --git a/include/boost/regex/v4/regex_format.hpp b/include/boost/regex/v4/regex_format.hpp index f0e327f3..5bd47cf6 100644 --- a/include/boost/regex/v4/regex_format.hpp +++ b/include/boost/regex/v4/regex_format.hpp @@ -243,7 +243,8 @@ void basic_regex_formatter::format_perl() default: // see if we have a number: { - std::ptrdiff_t len = (std::min)(static_cast(2), ::boost::re_detail::distance(m_position, m_end)); + std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end); + len = (std::min)(static_cast(2), len); int v = m_traits.toi(m_position, m_position + len, 10); if(v < 0) { @@ -327,7 +328,8 @@ void basic_regex_formatter::format_escape() } else { - std::ptrdiff_t len = (std::min)(static_cast(2), ::boost::re_detail::distance(m_position, m_end)); + std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end); + len = (std::min)(static_cast(2), len); int val = m_traits.toi(m_position, m_position + len, 16); if(val < 0) { @@ -398,7 +400,8 @@ void basic_regex_formatter::format_escape() { // octal ecape sequence: --m_position; - std::ptrdiff_t len = (std::min)(static_cast(4), ::boost::re_detail::distance(m_position, m_end)); + std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end); + len = (std::min)(static_cast(4), len); v = m_traits.toi(m_position, m_position + len, 8); BOOST_ASSERT(v >= 0); put(static_cast(v)); @@ -419,7 +422,8 @@ void basic_regex_formatter::format_conditional( put(static_cast('?')); return; } - std::ptrdiff_t len = (std::min)(static_cast(2), ::boost::re_detail::distance(m_position, m_end)); + std::ptrdiff_t len = ::boost::re_detail::distance(m_position, m_end); + len = (std::min)(static_cast(2), len); int v = m_traits.toi(m_position, m_position + len, 10); if(v < 0) {