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

## Interface ICPPASTTemplatedTypeTemplateParameter

All Superinterfaces:
  `IASTNameOwner`, `IASTNode`, `ICPPASTTemplateParameter`

    public interface ICPPASTTemplatedTypeTemplateParameter
    extends ICPPASTTemplateParameter, IASTNameOwner

This is a template template parameter as `V` in `template<template<typename T> class V> class CT;`

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` `DEFAULT_VALUE` Relation between template template parameter and its default value.
`static ASTNodeProperty` `PARAMETER` Relation between template template parameter and its (nested) template parameters.
`static ASTNodeProperty` `PARAMETER_NAME` Relation between template template parameter and its name.
`static int` `tt_class` `tt_class` represents a class.
`static int` `tt_typename` `tt_typename` represents a typename.

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

`EMPTY_TEMPLATEPARAMETER_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`void` `addTemplateParameter​(ICPPASTTemplateParameter parm)` Add a nested template parameter.
`void` `addTemplateParamter​(ICPPASTTemplateParameter parm)` Deprecated. Use `addTemplateParameter(ICPPASTTemplateParameter)`
`ICPPScope` `asScope()` Returns the scope that contains the template parameters of this template-template parameter.
`ICPPASTTemplatedTypeTemplateParameter` `copy()` Returns a mutable copy of the tree rooted at this node.
`ICPPASTTemplatedTypeTemplateParameter` `copy​(IASTNode.CopyStyle style)` Returns a mutable copy of the tree rooted at this node.
`IASTExpression` `getDefaultValue()` Get default value for template template parameter or `null`.
`IASTName` `getName()` Get the (optional) name of this template template parameter.
`int` `getParameterType()` Get the type of the template-template parameter (either `tt_class` or `tt_typename`).
`ICPPASTTemplateParameter[]` `getTemplateParameters()` Get the nested template parameters.
`void` `setDefaultValue​(IASTExpression expression)` Set default value for the template template parameter.
`void` `setIsParameterPack​(boolean val)` Set whether this template template parameter is a parameter pack.
`void` `setName​(IASTName name)` Set the name of this template template parameter.
`void` `setParameterType​(int type)` Set the type of the template-template parameter.

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

`isParameterPack`

### Field Detail

#### PARAMETER

    static final ASTNodeProperty PARAMETER

Relation between template template parameter and its (nested) template parameters.

#### PARAMETER_NAME

    static final ASTNodeProperty PARAMETER_NAME

Relation between template template parameter and its name.

#### DEFAULT_VALUE

    static final ASTNodeProperty DEFAULT_VALUE

Relation between template template parameter and its default value.

#### tt_class

    static final int tt_class

`tt_class` represents a class.

Since:
  6.6
See Also:
  Constant Field Values

#### tt_typename

    static final int tt_typename

`tt_typename` represents a typename.

Since:
  6.6
See Also:
  Constant Field Values

### Method Detail

#### getTemplateParameters

    ICPPASTTemplateParameter[] getTemplateParameters()

Get the nested template parameters.

#### getParameterType

    int getParameterType()

Get the type of the template-template parameter (either `tt_class` or `tt_typename`).

Since:
  6.6

#### getName

    IASTName getName()

Get the (optional) name of this template template parameter. In case there is no name an empty name is returned.

#### getDefaultValue

    IASTExpression getDefaultValue()

Get default value for template template parameter or `null`.

#### copy

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

#### copy

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

#### addTemplateParameter

    void addTemplateParameter​(ICPPASTTemplateParameter parm)

Add a nested template parameter.

Since:
  5.3

#### setIsParameterPack

    void setIsParameterPack​(boolean val)

Set whether this template template parameter is a parameter pack.

Since:
  5.2

#### setParameterType

    void setParameterType​(int type)

Set the type of the template-template parameter.

Parameters:
  `type` - The type of the template-template parameter (either `tt_class` or `tt_typename`)
Since:
  6.6

#### setName

    void setName​(IASTName name)

Set the name of this template template parameter.

#### setDefaultValue

    void setDefaultValue​(IASTExpression expression)

Set default value for the template template parameter.

#### asScope

    ICPPScope asScope()

Returns the scope that contains the template parameters of this template-template parameter.

Since:
  5.4

#### addTemplateParamter

    @Deprecated
    void addTemplateParamter​(ICPPASTTemplateParameter parm)

Deprecated.
Use `addTemplateParameter(ICPPASTTemplateParameter)`

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