//! The function performs formatting of the extracted scope stack in reverse direction void format_reverse(stream_type& strm, value_type const& scopes) const { value_type::const_reverse_iterator it = scopes.rbegin(), end; if (m_depth > 0) { value_type::size_type const scopes_to_iterate = (std::min)(m_depth, scopes.size()); end = it; std::advance(end, static_cast< value_type::difference_type >(scopes_to_iterate)); } else { end = scopes.rend(); } if (it != end) { m_element_formatter(strm, *it); for (++it; it != end; ++it) { strm << m_delimiter; m_element_formatter(strm, *it); } if (it != scopes.rend()) strm << m_incomplete_marker; } }