Package org.eclipse.cdt.core.dom.ast.cpp

## Interface ICPPFunction

All Superinterfaces:
  `org.eclipse.core.runtime.IAdaptable`, `IBinding`, `ICPPBinding`, `IFunction`

All Known Subinterfaces:
  `ICPPConstructor`, `ICPPConstructorSpecialization`, `ICPPDeferredFunction`, `ICPPFunctionInstance`, `ICPPFunctionSpecialization`, `ICPPFunctionTemplate`, `ICPPMethod`, `ICPPMethodSpecialization`

    public interface ICPPFunction
    extends IFunction, ICPPBinding

Binding for c++ functions.

Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Field Summary

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IBinding

`EMPTY_BINDING_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods
`ICPPFunctionType` `getDeclaredType()` Returns the function's declared type.
`IType[]` `getExceptionSpecification()` Returns the exception specification for this function or `null` if there is no exception specification.
`ICPPParameter[]` `getParameters()` Returns the formal parameters of the function.
`int` `getRequiredArgumentCount()`
`ICPPFunctionType` `getType()` Returns the function's type.
`boolean` `hasParameterPack()`
`boolean` `isConstexpr()` Returns whether this function is declared constexpr.
`boolean` `isDeleted()` Returns whether this is a function with a deleted function definition.
`boolean` `isExternC()` Returns whether this function is declared as extern "C".
`boolean` `isInline()` Is this an inline function
`boolean` `isMutable()` Does this function have the mutable storage class specifier

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IBinding

`getLinkage, getName, getNameCharArray, getOwner, getScope`

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding

`getQualifiedName, getQualifiedNameCharArray, isGloballyQualified`

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IFunction

`getFunctionScope, isAuto, isExtern, isNoDiscard, isNoReturn, isRegister, isStatic, takesVarArgs`

### Method Detail

#### isMutable

    boolean isMutable()

Does this function have the mutable storage class specifier

#### isInline

    boolean isInline()

Is this an inline function

Specified by:
  `isInline` in interface `IFunction`

#### isExternC

    boolean isExternC()

Returns whether this function is declared as extern "C".

Since:
  5.0

#### isConstexpr

    boolean isConstexpr()

Returns whether this function is declared constexpr.

Since:
  5.5

#### getExceptionSpecification

    IType[] getExceptionSpecification()

Returns the exception specification for this function or `null` if there is no exception specification.

Since:
  5.1

#### getType

    ICPPFunctionType getType()

Returns the function's type. Any placeholders in the type are resolved. If the type contains placeholders and a function definition is not available to resolve them, a ProblemType is returned (call sites that do not need the placeholders resolved should call getDeclaredType() instead).

Specified by:
  `getType` in interface `IFunction`
Since:
  5.1

#### getDeclaredType

    ICPPFunctionType getDeclaredType()

Returns the function's declared type. This is the function's type without any placeholders resolved.

Since:
  6.3

#### getParameters

    ICPPParameter[] getParameters()

Description copied from interface: `IFunction`
Returns the formal parameters of the function.

Specified by:
  `getParameters` in interface `IFunction`
Since:
  5.2

#### getRequiredArgumentCount

    int getRequiredArgumentCount()

Since:
  5.2

#### hasParameterPack

    boolean hasParameterPack()

Since:
  5.2

#### isDeleted

    boolean isDeleted()

Returns whether this is a function with a deleted function definition.

Since:
  5.3