В заголовочном файле С++ я вижу этот код:
typedef typename _Mybase::value_type value_type;
Теперь, как я понимаю, цитата из "С++ Complete Reference" Шильдта. typename
может быть заменен классом ключевых слов, второе использование typename
заключается в том, чтобы сообщить компилятору, что имя, используемое в объявлении шаблона, является именем типа, а не именем объекта.
Аналогично, вы можете определить новые имена типов данных, используя ключевое слово typedef
. Ты не
фактически создавая новый тип данных, а скорее определяя новое имя для существующего
тип.
Однако, можете ли вы точно объяснить, что означает приведенная выше строка кода, где typedef
и typename
объединены вместе. А что означает "::
" в заявлении?