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
`static IASTNode[]` `EMPTY_ARG_ARRAY` Deprecated. Use IASTNode.EMPTY_NODE_ARRAY instead.
`static ASTNodeProperty` `TEMPLATE_ID_ARGUMENT` TEMPLATE_ID_ARGUMENT = template id argument.
`static 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

All Methods Instance Methods Abstract Methods
`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 Detail

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

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