New context-dependent keywords are introduced into a program by typedef ([dcl.typedef]), namespace ([namespace.def]), class (clause [class]), enumeration ([dcl.enum]), and template (clause [temp]) declarations.
typedef-name: identifier
namespace-name: original-namespace-name namespace-alias original-namespace-name: identifier namespace-alias: identifier
class-name: identifier simple-template-id
enum-name: identifier
template-name: identifier
Note that a typedef-name naming a class is also a class-name ([class.name]).