It means you need to add typename at the front of that phrase to indicate that std::basic_string<T>::size_type is referring to a type. Because it is based on T which could be anything, the compiler doesn't know whether size_type is a type or something else there. Adding typename resolves the ambiguity.