# cxxFunction

Contains all the elements needed to describe the declaration of a C++ function (or member function).

## Description

The `<cxxFunction>` element requires an ID attribute as an anchor point; this ID must always be specified. The ID attribute is referenced by the conref attribute from internal applications that refer to the `<cxxFunctiion>` element content. The elements `<apiName>` and `<cxxFunctionDetail>` are required for this top-level container.

## Example

The following illustrates a typical (global) function:

    <cxxFunction id="test__class_8h_1a27a789a5aabed6e0e0d79ce0fd02b937">
      <apiName>SearchBuffer</apiName>
      <cxxFunctionDetail>
        <cxxFunctionDefinition>
          <cxxFunctionAccessSpecifier value="public"/>
          <cxxFunctionStorageClassSpecifierStatic/>
          <cxxFunctionDeclaredType>int</cxxFunctionDeclaredType>
          <cxxFunctionScopedName/>
          <cxxFunctionPrototype>static int SearchBuffer(const char *aBuffer, char c, int i)</cxxFunctionPrototype>
          <cxxFunctionNameLookup>SearchBuffer(const char *,char,int)</cxxFunctionNameLookup>
          <cxxFunctionParameters>
            <cxxFunctionParameter>
              <cxxFunctionParameterDeclaredType>const char *</cxxFunctionParameterDeclaredType>
              <cxxFunctionParameterDeclarationName>aBuffer</cxxFunctionParameterDeclarationName>
              <apiDefNote>The buffer to search. </apiDefNote>
            </cxxFunctionParameter>
            <cxxFunctionParameter>
              <cxxFunctionParameterDeclaredType>char</cxxFunctionParameterDeclaredType>
              <cxxFunctionParameterDeclarationName>c</cxxFunctionParameterDeclarationName>
              <apiDefNote>the character to search for. </apiDefNote>
            </cxxFunctionParameter>
            <cxxFunctionParameter>
              <cxxFunctionParameterDeclaredType>int</cxxFunctionParameterDeclaredType>
              <cxxFunctionParameterDeclarationName>i</cxxFunctionParameterDeclarationName>
              <apiDefNote>The start position. </apiDefNote>
            </cxxFunctionParameter>
          </cxxFunctionParameters>
          <apiDefNote>The index in the buffer or -1 if not found or i is &gt;= the buffer length. </apiDefNote>
          <cxxFunctionAPIItemLocation>
            <cxxFunctionDeclarationFile name="filePath" value="C:/wip/sysdoc/tools/Doxygen/branches/DITA/test/PaulRo/cxxApiExamples/src/test_class.h"/>
            <cxxFunctionDeclarationFileLine name="lineNumber" value="14"/>
          </cxxFunctionAPIItemLocation>
        </cxxFunctionDefinition>
        <apiDesc>
          <p>Searches a buffer for a character from a start position in the buffer. </p>
        </apiDesc>
      </cxxFunctionDetail>
    </cxxFunction>

## Contained by

cxxUnion cxxClass cxxStruct

## Contains

apiName, cxxFunctionDetail no-topic-nesting, prolog, related-links, shortdesc,

## Content Model

(apiName, then shortdesc, then prolog, then cxxFunctionDetail then related-links, then (no-topic-nesting, ))

## Inheritance

topic/topic reference/reference apiRef/apiRef apiOperation/apiOperation cxxFunction/cxxFunction

Parent topic: cxxFunction module