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

# Interface ICPPTemplateArgument

public interface ICPPTemplateArgument
Models the value of a template parameter or for the argument of a template-id. Such a value can either be a type-value, or an integral value.

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

## Field Summary

Fields
Modifier and Type
Field
Description
`static final ICPPTemplateArgument[]`
`EMPTY_ARGUMENTS`

## Method Summary

Modifier and Type
Method
Description
`ICPPTemplateArgument`
`getExpansionPattern()`
Returns the expansion pattern, if this is a pack expansion, or `null` otherwise.
`org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPEvaluation`
`getNonTypeEvaluation()`
If this is a non-type value (suitable for a template non-type parameters), the evaluation object is returned.
`IValue`
`getNonTypeValue()`
If this is a non-type value (suitable for a template non-type parameters), the value is returned.
`IType`
`getOriginalTypeValue()`
Similar to `getTypeValue()` but returns the original type value before typedef resolution.
`IType`
`getTypeOfNonTypeValue()`
If this is a non-type value (suitable for a template non-type parameter), the type of the value is returned.
`IType`
`getTypeValue()`
If this is a type value (suitable for a template type and template template parameters), the type used as a value is returned.
`boolean`
`isNonTypeValue()`
Returns whether this is an integral value, suitable for a template non-type parameter.
`boolean`
`isPackExpansion()`
Returns whether this template argument is a pack expansion or not.
`boolean`
`isSameValue(ICPPTemplateArgument arg)`
Checks whether two arguments denote the same value.
`boolean`
`isTypeValue()`
Returns whether this is a type value, suitable for either a template type or a template template parameter.

## Field Details

### EMPTY_ARGUMENTS

static final ICPPTemplateArgument[] EMPTY_ARGUMENTS

## Method Details

### isNonTypeValue

boolean isNonTypeValue()
Returns whether this is an integral value, suitable for a template non-type parameter.

### isTypeValue

boolean isTypeValue()
Returns whether this is a type value, suitable for either a template type or a template template parameter.

### getTypeValue

IType getTypeValue()
If this is a type value (suitable for a template type and template template parameters), the type used as a value is returned. For non-type values, `null` is returned. The returned type has all typedefs resolved.

### getOriginalTypeValue

IType getOriginalTypeValue()
Similar to `getTypeValue()` but returns the original type value before typedef resolution.

Since:
  5.5

### getNonTypeEvaluation

org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPEvaluation getNonTypeEvaluation()
If this is a non-type value (suitable for a template non-type parameters), the evaluation object is returned. For type values, `null` is returned.

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

### getNonTypeValue

IValue getNonTypeValue()
If this is a non-type value (suitable for a template non-type parameters), the value is returned. For type values, `null` is returned.

### getTypeOfNonTypeValue

IType getTypeOfNonTypeValue()
If this is a non-type value (suitable for a template non-type parameter), the type of the value is returned. For type values, `null` is returned.

### isSameValue

boolean isSameValue(ICPPTemplateArgument arg)
Checks whether two arguments denote the same value.

### isPackExpansion

boolean isPackExpansion()
Returns whether this template argument is a pack expansion or not.

Since:
  5.2

### getExpansionPattern

ICPPTemplateArgument getExpansionPattern()
Returns the expansion pattern, if this is a pack expansion, or `null` otherwise.

Since:
  5.2