The complexity requirements for a reversible container ([container.rev.reqmts]) are that each function must have constant complexity. The corresponding member functions in [string.iterators] have no complexity requirements, and basic_string unintentionally is not a reversible container (unless the implementation coincidentally provides constant complexity member functions).