This does not mean that it is not a random access iterator (as other answers said, the standard requires it to be a random access iterator.)
What this means is that the exact types of iterators are unspecified, that is, they can be char* , or they can be std::string::__iterator or __gnu_cxx::__normal_iterator<char, std::string> or something else. Any of these implementation options is allowed as long as it satisfies the requirements of the random access iterator and can be called by the name string::iterator
source share