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

Modifier and Type
Method
Description
`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 Details

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

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