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

Modifier and Type
Method
Description
`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 Details

### 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