Package org.eclipse.cdt.core.dom.ast.cpp
Interface ICPPTemplateParameter
- All Superinterfaces:
org.eclipse.core.runtime.IAdaptable
,IBinding
,ICPPBinding
- All Known Subinterfaces:
ICPPTemplateNonTypeParameter
,ICPPTemplateTemplateParameter
,ICPPTemplateTypeParameter
Base interface for all template parameters (non-type, type and template).
All template parameters should implement ICPPUnknownBinding as well
(but ICPPTemplateParameter cannot extend ICPPUnknownBinding because
ICPPUnknownBinding is not API).
- 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 inherited from interface org.eclipse.cdt.core.dom.ast.IBinding
EMPTY_BINDING_ARRAY
-
Method Summary
Modifier and TypeMethodDescriptionReturns the default value for this template parameter, ornull
.int
Returns(getTemplateNestingLevel() << 16) + getParameterPosition()
.short
Returns the zero-based position of this parameter within the template parameter list it belongs to.short
Returns the nesting-level of the template declaration this parameter belongs to.boolean
Returns whether this template parameter is a parameter pack.Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
Methods inherited from interface org.eclipse.cdt.core.dom.ast.IBinding
getLinkage, getName, getNameCharArray, getOwner, getScope
Methods inherited from interface org.eclipse.cdt.core.dom.ast.cpp.ICPPBinding
getQualifiedName, getQualifiedNameCharArray, isGloballyQualified
-
Field Details
-
EMPTY_TEMPLATE_PARAMETER_ARRAY
-
-
Method Details
-
getParameterPosition
short getParameterPosition()Returns the zero-based position of this parameter within the template parameter list it belongs to.- Since:
- 5.1
-
getTemplateNestingLevel
short getTemplateNestingLevel()Returns the nesting-level of the template declaration this parameter belongs to.The nesting level is determined by counting enclosing template declarations, for example:
namespace ns { template
class X { // nesting level 0 template class Y1 { // nesting level 1 }; class Y2 { template typename class Z { // nesting level 1 void m(); }; }; }; } template // nesting level 0 template // nesting level 1 void ns::X ::Y2::Z ::m() {} - Since:
- 5.1
-
getParameterID
int getParameterID()Returns(getTemplateNestingLevel() << 16) + getParameterPosition()
.- Since:
- 5.1
-
getDefaultValue
ICPPTemplateArgument getDefaultValue()Returns the default value for this template parameter, ornull
.- Since:
- 5.1
-
isParameterPack
boolean isParameterPack()Returns whether this template parameter is a parameter pack.- Since:
- 5.2
-