C ++ - значение оператора, объединяющего typedef и typename [duplicate]
На этот вопрос уже есть ответ здесь:
Где и почему я должен поставить ключевые слова «template» и «typename»? 6 ответовВ заголовочном файле C ++ я вижу этот код:
typedef typename _Mybase::value_type value_type;
Теперь, как я понимаю, цитирую из «C ++ Полная ссылка »Шильдт.typename
можно заменить на ключевое слово class, второе использованиеtypename
должен сообщить компилятору, что имя, используемое в объявлении шаблона, является именем типа, а не именем объекта.
Точно так же вы можете определить новые имена типов данных, используя ключевое словоtypedef
, Вы на самом деле не создаете новый тип данных, а скорее определяете новое имя для существующего типа.
Тем не менее, вы можете объяснить, в чем именно смысл приведенной выше строки кода, гдеtypedef
а такжеtypename
объединены вместе А что значит "::
в заявлении подразумевается?