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

# Interface ICPPASTTemplateId

All Superinterfaces:
  `IASTName`, `IASTNameOwner`, `IASTNode`, `ICPPASTName`, `ICPPASTNameSpecifier`, `IName`

public interface ICPPASTTemplateId extends ICPPASTName, IASTNameOwner

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

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`IASTNode.CopyStyle`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final IASTNode[]`
`EMPTY_ARG_ARRAY`
Deprecated.
Use IASTNode.EMPTY_NODE_ARRAY instead.
`static final ASTNodeProperty`
`TEMPLATE_ID_ARGUMENT`
TEMPLATE_ID_ARGUMENT = template id argument.
`static final ASTNodeProperty`
`TEMPLATE_NAME`
The template name in the template ID.

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

`EMPTY_NAME_ARRAY`

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

`r_declaration, r_definition, r_reference, r_unclear`

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

`EMPTY_NODE_ARRAY`

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

`EMPTY_NAME_SPECIFIER_ARRAY`

### Fields inherited from interface org.eclipse.cdt.core.dom.IName

`EMPTY_ARRAY`

## Method Summary

Modifier and Type
Method
Description
`void`
`addTemplateArgument(ICPPASTAmbiguousTemplateArgument ambiguity)`
Adds an ambiguity node for later resolution.
`void`
`addTemplateArgument(IASTExpression expression)`
Adds a template argument.
`void`
`addTemplateArgument(IASTTypeId typeId)`
Adds template argument.
`ICPPASTTemplateId`
`copy()`
Returns a mutable copy of the tree rooted at this node.
`ICPPASTTemplateId`
`copy(IASTNode.CopyStyle style)`
Returns a mutable copy of the tree rooted at this node.
`IASTNode[]`
`getTemplateArguments()`
Returns all template arguments as nodes.
`IASTName`
`getTemplateName()`
Returns the name of the template.
`void`
`setTemplateName(IASTName name)`
Sets the name of the template.

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

`getBinding, getCompletionContext, getImageLocation, getLastName, getLinkage, getLookupKey, getPreBinding, getRoleOfName, isQualified, resolveBinding, resolvePreBinding, setBinding, toCharArray, toString`

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

`getRoleForName`

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

`accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent`

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

`resolveBinding, resolvePreBinding, toCharArray`

### Methods inherited from interface org.eclipse.cdt.core.dom.IName

`getFileLocation, getSimpleID, isDeclaration, isDefinition, isReference`

## Field Details

### TEMPLATE_NAME

static final ASTNodeProperty TEMPLATE_NAME
The template name in the template ID.

### TEMPLATE_ID_ARGUMENT

static final ASTNodeProperty TEMPLATE_ID_ARGUMENT
TEMPLATE_ID_ARGUMENT = template id argument.

### EMPTY_ARG_ARRAY

@Deprecated static final IASTNode[] EMPTY_ARG_ARRAY
Deprecated.
Use IASTNode.EMPTY_NODE_ARRAY instead.

Restriction:
  This field is not intended to be referenced by clients.

## Method Details

### getTemplateName

IASTName getTemplateName()
Returns the name of the template.

Returns:
  `IASTName`

### setTemplateName

void setTemplateName(IASTName name)
Sets the name of the template.

Parameters:
  `name` - `IASTName`

### addTemplateArgument

void addTemplateArgument(IASTTypeId typeId)
Adds template argument.

Parameters:
  `typeId` - `IASTTypeId`

### addTemplateArgument

void addTemplateArgument(IASTExpression expression)
Adds a template argument.

Parameters:
  `expression` - `IASTExpression`

### addTemplateArgument

void addTemplateArgument(ICPPASTAmbiguousTemplateArgument ambiguity)
Adds an ambiguity node for later resolution.

Parameters:
  `ambiguity` -

### getTemplateArguments

IASTNode[] getTemplateArguments()
Returns all template arguments as nodes.

Returns:
  nodes representing the template arguments

### copy

ICPPASTTemplateId copy()
Description copied from interface: `IASTNode`
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:

     copy.getParent() == null
     copy.getPropertyInParent() == null
     copy.isFrozen() == false

Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

Calling this method is equivalent to `copy(CopyStyle.withoutLocations)`.

Specified by:
  `copy` in interface `IASTName`
Specified by:
  `copy` in interface `IASTNode`
Specified by:
  `copy` in interface `ICPPASTName`
Specified by:
  `copy` in interface `ICPPASTNameSpecifier`
Since:
  5.1

### copy

ICPPASTTemplateId copy(IASTNode.CopyStyle style)
Description copied from interface: `IASTNode`
Returns a mutable copy of the tree rooted at this node. The following postconditions hold:

     copy.getParent() == null
     copy.getPropertyInParent() == null
     copy.isFrozen() == false

Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

Specified by:
  `copy` in interface `IASTName`
Specified by:
  `copy` in interface `IASTNode`
Specified by:
  `copy` in interface `ICPPASTName`
Specified by:
  `copy` in interface `ICPPASTNameSpecifier`
Parameters:
  `style` - `IASTNode.CopyStyle` create a copy with or without locations. Please see `IASTNode.CopyStyle` for restrictions on copies with Locations.
Since:
  5.3