# C++ topic types

The C++ API specialization provides a set of specific topic types that can describe a C++ application programming interface (API) library. The C++ language-specific API topic types are specialized from the generic API reference topic types. This specialization permits the sharing of the basic semantics and processing.

## Description

The C++ modules describe the C++ topic types and their contained elements. For example, the cxxClass module describes all the elements necessary to describe a C++ class.

- cxxapi-domain module
  Provides the description of the elements that refer to the API items within C++ API topics or other DITA topic types, such as concept or task.
- cxxAPIMap module
  Provides the relationships among a set of C++ API topic types, and can be used to create a Table of Contents (TOC), aggregate C++ API topics into a PDF document, or to create links between topics in output.
- cxxClass module
  Defines a top-level container for all the elements necessary to describe an C++ API class.
- cxxDefine module
  Defines a top-level container for all the elements necessary to describe a define.
- cxxEnumeration module
  Defines a top-level container for all the elements necessary to describe an C++ API enumeration.
- cxxFile module
  The cxxFile module defines a top-level container for all the elements necessary to describe the global APIs of a component
- cxxFunction module
  The cxxFunction module describes C++ functions, including member functions.
- cxxStruct module
  Defines a top-level container for all the elements necessary to describe an C++ API struct.
- cxxTypedef module
  Defines a top-level container for all the elements necessary to describe an C++ API typedef.
- cxxUnion module
  Defines a top-level container for all the elements necessary to describe a C++ API union.
- cxxVariable module
  Defines a top-level container for all the elements necessary to describe a variable.