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
public interface ICPPTemplateParameter extends ICPPBinding
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 Modifier and Type Field Description static ICPPTemplateParameter[]
EMPTY_TEMPLATE_PARAMETER_ARRAY
-
Fields inherited from interface org.eclipse.cdt.core.dom.ast.IBinding
EMPTY_BINDING_ARRAY
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ICPPTemplateArgument
getDefaultValue()
Returns the default value for this template parameter, ornull
.int
getParameterID()
Returns(getTemplateNestingLevel() << 16) + getParameterPosition()
.short
getParameterPosition()
Returns the zero-based position of this parameter within the template parameter list it belongs to.short
getTemplateNestingLevel()
Returns the nesting-level of the template declaration this parameter belongs to.boolean
isParameterPack()
Returns whether this template parameter is a parameter pack.-
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 Detail
-
EMPTY_TEMPLATE_PARAMETER_ARRAY
static final ICPPTemplateParameter[] EMPTY_TEMPLATE_PARAMETER_ARRAY
-
-
Method Detail
-
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
-
-