# cxxFunction module

The cxxFunction module describes C++ functions, including member functions.

## Description

The <cxxFunction> topic type contains elements necessary to show the name of the function, a short description and define the function.

Common elements used to describe a function are:

- cxxFunctionAccessSpecifier
- cxxFunctionDeclaredType
- cxxFunctionScopedName
- cxxFunctionPrototype
- cxxFunctionNameLookup
- cxxFunctionAPIItemLocation

The cxxFunction topic contains the following elements:

- cxxFunction
  Contains all the elements needed to describe the declaration of a C++ function (or member function).
- cxxFunctionAccessSpecifier
  Describes the access specifier for the function ("public", "protected" or "private").
- cxxFunctionAPIItemLocation
  Describes the location of a function in the original C++ source code.
- cxxFunctionConst
  Used to describe a function with a `const` cv-qualifier.
- cxxFunctionConstructor
  Identifies a function as a constructor.
- cxxFunctionDeclarationFile
  Identifies the path to the file that contains the declaration of the function.
- cxxFunctionDeclarationFileLine
  Identifies the line number in file that contains the declaration of the function.
- cxxFunctionDeclaredType
  Identifies the declarator of the function i.e. the "return type".
- cxxFunctionDefinition
  Describes all of the details of a C++ function declaration.
- cxxFunctionDefinitionFile
  Identifies the path to the file that contains the definition of the function.
- cxxFunctionDefinitionFileLineEnd
  Identifies the line number in file that contains the end of the definition of the function.
- cxxFunctionDefinitionFileLineStart
  Identifies the line number in file that contains the start of the definition of the function.
- cxxFunctionDestructor
  Identifies a function as a destructor.
- cxxFunctionDetail
  Contains the declaration of a C++ function and any documention about that function.
- cxxFunctionExplicit
  Describes a special member function (that must always be a constructor) with an explicit Function-specifier
- cxxFunctionInline
  Identifies the funciton as inline.
- cxxFunctionNameLookup
  Provides a unique identifier of the function.
- cxxFunctionParameter
  Describes a function parameter
- cxxFunctionParameterDeclarationName
  Describes the name of the parameter used in the declaration of the function.
- cxxFunctionParameterDeclaredType
  Describes the type of a function parameter.
- cxxFunctionParameterDefaultValue
  Describes any default value that the function parameter has.
- cxxFunctionParameterDefinitionName
  Describes the name of the parameter used in the definition of the function.
- cxxFunctionParameters
  Element that contains information about the function parameter-declaration-clause.
- cxxFunctionPrototype
  Provides a "visual" representation of the function declaration.
- cxxFunctionPureVirtual
  Identifies a function as pure virtual.
- cxxFunctionReimplemented
  Identifies functions that have been re-implemented.
- cxxFunctionReturnType
  Deprecated, use `cxxFunctionDeclaredType`.
- cxxFunctionScopedName
  The scope of the function i.e. the declaration of the enclosing namespace/class/struct/union.
- cxxFunctionStorageClassSpecifierExtern
  Identifies functions that have external linkage.
- cxxFunctionStorageClassSpecifierMutable
  Describes functions that have a mutable storage-class-specifier.
- cxxFunctionStorageClassSpecifierStatic
  Describes a function with static linkage.
- cxxFunctionTemplateParameter
  Contains the type of the template parameter and any documentation associated with that parameter.
- cxxFunctionTemplateParameters
  Collects together the template parameters for template functions.
- cxxFunctionTemplateParameterType
  Describes the type of the template parameter.
- cxxFunctionVirtual
  Identifies a function as virtual.
- cxxFunctionVolatile
  Used to describe a function with a `volatile` cv-qualifier.

Parent topic: C++ topic types