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

## Interface ICPPASTTemplateDeclaration

All Superinterfaces:
  `IASTDeclaration`, `IASTNode`

    public interface ICPPASTTemplateDeclaration
    extends IASTDeclaration

Template declaration.

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 ASTNodeProperty` `OWNED_DECLARATION` `OWNED_DECLARATION` is the subdeclaration that we maintain grammatically.
`static ASTNodeProperty` `PARAMETER` `PARAMETER` is used for template parameters.

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

`EMPTY_DECLARATION_ARRAY`

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

`EMPTY_NODE_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`void` `addTemplateParameter​(ICPPASTTemplateParameter paramm)` Adds a template parameter.
`void` `addTemplateParamter​(ICPPASTTemplateParameter paramm)` Deprecated. Use `addTemplateParameter(ICPPASTTemplateParameter)`.
`ICPPASTTemplateDeclaration` `copy()` Returns a mutable copy of the tree rooted at this node.
`ICPPASTTemplateDeclaration` `copy​(IASTNode.CopyStyle style)` Returns a mutable copy of the tree rooted at this node.
`IASTDeclaration` `getDeclaration()` Returns the template declaration.
`ICPPTemplateScope` `getScope()` Returns the template scope representing this declaration in the logical tree.
`ICPPASTTemplateParameter[]` `getTemplateParameters()` Returns the template parameters.
`boolean` `isExported()` Is the export keyword used?
`void` `setDeclaration​(IASTDeclaration declaration)` Sets the template declaration.
`void` `setExported​(boolean value)` Should the export keyword be used?

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

### Field Detail

#### OWNED_DECLARATION

    static final ASTNodeProperty OWNED_DECLARATION

`OWNED_DECLARATION` is the subdeclaration that we maintain grammatically.

#### PARAMETER

    static final ASTNodeProperty PARAMETER

`PARAMETER` is used for template parameters.

### Method Detail

#### isExported

    boolean isExported()

Is the export keyword used?

#### setExported

    void setExported​(boolean value)

Should the export keyword be used?

#### getDeclaration

    IASTDeclaration getDeclaration()

Returns the template declaration.

#### setDeclaration

    void setDeclaration​(IASTDeclaration declaration)

Sets the template declaration.

Parameters:
  `declaration` - the declaration to set

#### getTemplateParameters

    ICPPASTTemplateParameter[] getTemplateParameters()

Returns the template parameters.

#### addTemplateParameter

    void addTemplateParameter​(ICPPASTTemplateParameter paramm)

Adds a template parameter.

Parameters:
  `paramm` - the parameter to add
Since:
  5.2

#### addTemplateParamter

    @Deprecated
    void addTemplateParamter​(ICPPASTTemplateParameter paramm)

Deprecated.
Use `addTemplateParameter(ICPPASTTemplateParameter)`.

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

#### getScope

    ICPPTemplateScope getScope()

Returns the template scope representing this declaration in the logical tree.

#### copy

    ICPPASTTemplateDeclaration 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 `IASTDeclaration`
Specified by:
  `copy` in interface `IASTNode`
Since:
  5.1

#### copy

    ICPPASTTemplateDeclaration 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 `IASTDeclaration`
Specified by:
  `copy` in interface `IASTNode`
Parameters:
  `style` - `IASTNode.CopyStyle` create a copy with or without locations. Please see `IASTNode.CopyStyle` for restrictions on copies with Locations.
Since:
  5.3