Interface ICPPASTDeductionGuide

  • All Superinterfaces:
    IASTDeclaration, IASTNode, ICPPASTParameterListOwner

    public interface ICPPASTDeductionGuide
    extends IASTDeclaration, ICPPASTParameterListOwner
    A C++ class-template argument deduction guide

    e.g:

     SomeTemplateName(int) -> SomeTemplateName<float>;
    
     template<typename I>
     SomeTemplateName(I, I) -> SomeTemplateName<typename std::iterator_traits<I>::value_type>;
     

    Since:
    7.0
    Restriction:
    This interface is not intended to be implemented by clients.
    Restriction:
    This interface is not intended to be extended by clients.
    • Field Detail

      • TEMPLATE_NAME

        static final ASTNodeProperty TEMPLATE_NAME
        TEMPLATE_NAME represents the relationship between an ICPPASTDeductionGuide and it's nested IASTName.
      • TEMPLATE_ID

        static final ASTNodeProperty TEMPLATE_ID
        TEMPLATE_ID represents the relationship between an ICPPASTDeductionGuide and it's nested ICPPASTTemplateId.
      • PARAMETER

        static final ASTNodeProperty PARAMETER
        PARAMETER represents the relationship between an ICPPASTDeductionGuide and it's nested IASTParameterDeclaration.
    • Method Detail

      • isExplicit

        boolean isExplicit()
        Check if the deduction guide was declared as 'explicit'.
      • setExplicit

        void setExplicit​(boolean isExplict)
        Set whether or not the deduction guide is marked explicit
      • getTemplateName

        IASTName getTemplateName()
        Get the name of the template type the deduction guide refers to
      • setTemplateName

        void setTemplateName​(IASTName name)
        Set the name of the template type the deduction guide refers to
      • getSimpleTemplateId

        ICPPASTTemplateId getSimpleTemplateId()
        Get the template id of the deduction guide
      • setSimpleTemplateId

        void setSimpleTemplateId​(ICPPASTTemplateId id)
        Set the template id of the deduction guide
      • copy

        ICPPASTDeductionGuide copy()
        Description copied from interface: IASTNode
        Returns a mutable copy of the tree rooted at this node. The following postconditions hold:
         copy.getParent() == null
         copy.getPropertyInParent() == null
         copy.isFrozen() == false
         
        Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

        Calling this method is equivalent to copy(CopyStyle.withoutLocations).

        Specified by:
        copy in interface IASTDeclaration
        Specified by:
        copy in interface IASTNode
      • copy

        ICPPASTDeductionGuide copy​(IASTNode.CopyStyle style)
        Description copied from interface: IASTNode
        Returns a mutable copy of the tree rooted at this node. The following postconditions hold:
         copy.getParent() == null
         copy.getPropertyInParent() == null
         copy.isFrozen() == false
         
        Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.
        Specified by:
        copy in interface IASTDeclaration
        Specified by:
        copy in interface IASTNode
        Parameters:
        style - IASTNode.CopyStyle create a copy with or without locations. Please see IASTNode.CopyStyle for restrictions on copies with Locations.