Interface ICPPASTFunctionDefinition

All Superinterfaces:
IASTAttributeOwner, IASTDeclaration, IASTFunctionDefinition, IASTNode
All Known Subinterfaces:
ICPPASTFunctionWithTryBlock

public interface ICPPASTFunctionDefinition extends IASTFunctionDefinition, IASTAttributeOwner
In c++ the a function definition for a constructor may contain member initializers.
Since:
5.1
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

    • MEMBER_INITIALIZER

      static final ASTNodeProperty MEMBER_INITIALIZER
      MEMBER_INITIALIZER is the role of a member initializer in the function definition.
  • Method Details

    • getMemberInitializers

      ICPPASTConstructorChainInitializer[] getMemberInitializers()
      Returns the array of associated member initializers.
    • addMemberInitializer

      void addMemberInitializer(ICPPASTConstructorChainInitializer initializer)
      Adds a member initializer to this function definition.
    • 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 IASTFunctionDefinition
      Specified by:
      copy in interface IASTNode
      Since:
      5.1
    • 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.
      Specified by:
      copy in interface IASTDeclaration
      Specified by:
      copy in interface IASTFunctionDefinition
      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.
      Since:
      5.3
    • setIsDefaulted

      void setIsDefaulted(boolean isDefaulted)
      Make this a defaulted function definition, e.g.: C::C() = default;
      Since:
      5.3
    • isDefaulted

      boolean isDefaulted()
      Returns whether this is a defaulted function definition.
      Since:
      5.3
    • setIsDeleted

      void setIsDeleted(boolean isDeleted)
      Make this a deleted function definition, e.g.: void f() = delete;
      Since:
      5.3
    • isDeleted

      boolean isDeleted()
      Returns whether this is a deleted function definition.
      Since:
      5.3