Thursday, 22 August 2013

C++ - meaning of a statement combining typedef and typename

C++ - meaning of a statement combining typedef and typename

In a C++ header file, I am seeing this code-
typedef typename _Mybase::value_type value_type;
Now, as I understand, quoting from C++ the Complete Reference by Schildt-
Typename can be substituted by keyword class, the second use of typename
is to inform the compiler that a name used in a template declaration is a
type name rather than an object name.
Similarly, you can define new data type names by using the keyword
typedef. You are not actually creating a new data type, but rather
defining a new name for an existing type.
However, can you explain exactly what is the meaning of the above line of
code, where typedef and typename are combined together. And what does the
"::" in the statement imply?

No comments:

Post a Comment