Ответ 1
Стандарт С++ также не использует эту фразу. Вместо этого он назвал бы это вложенным именем типа (§9.9).
Есть четыре способа получить один:
class C
{
public:
typedef int int_type; // as a nested typedef-name
using float_type = float; // C++11: typedef-name declared using 'using'
class inner_type { /*...*/ }; // as a nested class or struct
enum enum_type { one, two, three }; // nested enum (or 'enum class' in C++11)
};
Вложенные имена типов определяются в области видимости класса, и для того, чтобы ссылаться на них извне этой области, требуется квалификация имени:
int_type a1; // error, 'int_type' not known
C::int_type a2; // OK
C::enum_type a3 = C::one; // OK