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

# Interface ICPPTemplateInstance

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

All Known Subinterfaces:
  `ICPPAliasTemplateInstance`, `ICPPDeferredTemplateInstance`, `ICPPFunctionInstance`, `ICPPVariableInstance`

public interface ICPPTemplateInstance extends ICPPSpecialization
This interface represents an instantiation or an explicit specialization of a class or a function template. The `isExplicitSpecialization()` method is used to distinguish between the two cases. An instance of a class template will also implement ICPPClassType and similarly a function template instance will also implement ICPPFunction (or even ICPPMethod or ICPPConstructor as appropriate).

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
Modifier and Type
Field
Description
`static final ICPPTemplateInstance[]`
`EMPTY_TEMPLATE_INSTANCE_ARRAY`

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

`EMPTY_BINDING_ARRAY`

## Method Summary

Modifier and Type
Method
Description
`ICPPTemplateArgument[]`
`getTemplateArguments()`
Returns the template arguments of this instance.
`ICPPTemplateDefinition`
`getTemplateDefinition()`
Returns the template that this instance was instantiated from.
`boolean`
`isExplicitSpecialization()`
Explicit specializations are modeled as instances of a template.

### 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.cpp.ICPPSpecialization

`getSpecializedBinding, getTemplateParameterMap`

## Field Details

### EMPTY_TEMPLATE_INSTANCE_ARRAY

static final ICPPTemplateInstance[] EMPTY_TEMPLATE_INSTANCE_ARRAY

Since:
  5.1

## Method Details

### getTemplateDefinition

ICPPTemplateDefinition getTemplateDefinition()
Returns the template that this instance was instantiated from.

### getTemplateArguments

ICPPTemplateArgument[] getTemplateArguments()
Returns the template arguments of this instance.

Since:
  5.1

### isExplicitSpecialization

boolean isExplicitSpecialization()
Explicit specializations are modeled as instances of a template. Returns `true` if this binding is an explicit specialization.

Since:
  5.2