C ++ - значение оператора, объединяющего typedef и typename [duplicate]

На этот вопрос уже есть ответ здесь:

Где и почему я должен поставить ключевые слова «template» и «typename»? 6 ответов

В заголовочном файле C ++ я вижу этот код:

typedef typename _Mybase::value_type value_type;

Теперь, как я понимаю, цитирую из «C ++ Полная ссылка »Шильдт.typename можно заменить на ключевое слово class, второе использованиеtypename должен сообщить компилятору, что имя, используемое в объявлении шаблона, является именем типа, а не именем объекта.

Точно так же вы можете определить новые имена типов данных, используя ключевое словоtypedef, Вы на самом деле не создаете новый тип данных, а скорее определяете новое имя для существующего типа.

Тем не менее, вы можете объяснить, в чем именно смысл приведенной выше строки кода, гдеtypedef а такжеtypename объединены вместе А что значит "::в заявлении подразумевается?

Ответы на вопрос(2)

Ваш ответ на вопрос