C ++ - znaczenie instrukcji łączącej typedef i typename [duplikat]

To pytanie ma już tutaj odpowiedź:

Gdzie i dlaczego muszę umieścić słowa kluczowe „szablon” i „nazwa pliku”? 6 odpowiedzi

W pliku nagłówkowym C ++ widzę ten kod:

typedef typename _Mybase::value_type value_type;

Teraz, jak rozumiem, cytując z «C ++ Kompletny odnośnik »Schildt.typename można zastąpić klasą słów kluczowych, drugim użyciemtypename jest informowanie kompilatora, że ​​nazwa użyta w deklaracji szablonu jest nazwą typu, a nie nazwą obiektu.

Podobnie można zdefiniować nowe nazwy typów danych, używając słowa kluczowegotypedef. W rzeczywistości nie tworzysz nowego typu danych, ale definiujesz nową nazwę dla istniejącego typu.

Czy możesz jednak wyjaśnić, co dokładnie oznacza powyższy wiersz kodu, gdzietypedef itypename są połączone razem. A co robi „::„w oświadczeniu oznacza to?

questionAnswers(2)

yourAnswerToTheQuestion