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 Details

  • 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, or null.
      Since:
      5.1
    • isParameterPack

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