Eclipse CDT
7.0

org.eclipse.cdt.core.dom.ast.cpp
Interface ICPPTemplateParameter

All Superinterfaces:
IBinding, ICPPBinding
All Known Subinterfaces:
ICPPTemplateNonTypeParameter, ICPPTemplateTemplateParameter, ICPPTemplateTypeParameter

public interface ICPPTemplateParameter
extends ICPPBinding

Base interface for all template parameters (non-type, type and template).


Field Summary
static ICPPTemplateParameter[] EMPTY_TEMPLATE_PARAMETER_ARRAY
           
 
Fields inherited from interface org.eclipse.cdt.core.dom.ast.IBinding
EMPTY_BINDING_ARRAY
 
Method Summary
 ICPPTemplateArgument getDefaultValue()
          Returns the default value for this template parameter, or null.
 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.cpp.ICPPBinding
getQualifiedName, getQualifiedNameCharArray, isGloballyQualified
 
Methods inherited from interface org.eclipse.cdt.core.dom.ast.IBinding
getLinkage, getName, getNameCharArray, getOwner, getScope
 

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, or null.

Since:
5.1

isParameterPack

boolean isParameterPack()
Returns whether this template parameter is a parameter pack.

Since:
5.2

Eclipse CDT
7.0

Copyright (c) IBM Corp. and others 2004, 2012. All Rights Reserved.