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
FieldsFields 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.intReturns(getTemplateNestingLevel() << 16) + getParameterPosition().shortReturns the zero-based position of this parameter within the template parameter list it belongs to.shortReturns the nesting-level of the template declaration this parameter belongs to.booleanReturns whether this template parameter is a parameter pack.Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapterMethods inherited from interface org.eclipse.cdt.core.dom.ast.IBinding
getLinkage, getName, getNameCharArray, getOwner, getScopeMethods 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 { templateclass 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
-