Annex A (informative) Grammar summary [gram]

A.1 Keywords [gram.key]

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]).