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.
    • 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