inline ss_sint_t basic_static_string<C, CCH,
T>::compare( ss_typename_type_k basic_static_string<C, CCH,
T>::size_type
pos,
ss_typename_type_k
basic_static_string<C, CCH, T>::size_type
n,
ss_typename_type_k
basic_static_string<C, CCH, T>::value_type const* s) const
{
STLSOFT_ASSERT(is_valid());
size_type lhs_len = length();
if(!(pos <
lhs_len))
{
pos =
lhs_len;
} else
{
lhs_len -= pos;
}
if(cch <
lhs_len)
{
lhs_len = cch;
}
size_type rhs_len = (s == 0) ? 0 : traits_type::length(s);
STLSOFT_ASSERT(is_valid());
return compare_(m_buffer + pos, lhs_len, s, rhs_len);
}