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

### Field Summary

Fields
`static ICPPTemplateArgument[]` `EMPTY_ARGUMENTS`

### Method Summary

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

#### EMPTY_ARGUMENTS

    static final ICPPTemplateArgument[] EMPTY_ARGUMENTS

### Method Detail

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

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