class ObjCInterfaceType

Declaration

class ObjCInterfaceType : public ObjCObjectType { /* full declaration omitted */ };

Description

Interfaces are the core concept in Objective-C for object oriented design. They basically correspond to C++ classes. There are two kinds of interface types: normal interfaces like `NSString`, and qualified interfaces, which are qualified with a protocol list like `NSString <NSCopyable , NSAmazing>`. ObjCInterfaceType guarantees the following properties when considered as a subtype of its superclass, ObjCObjectType: - There are no protocol qualifiers. To reinforce this, code which tries to invoke the protocol methods via an ObjCInterfaceType will fail to compile. - It is its own base type. That is, if T is an ObjCInterfaceType*, T->getBaseType() == QualType(T, 0).

Declared at: clang/include/clang/AST/Type.h:6151

Inherits from: ObjCObjectType

Member Variables

private clang::ObjCInterfaceDecl* Decl

Inherited from Type:

protected

Method Overview

Inherited from ObjCObjectType:

Inherited from Type:

Inherited from ExtQualsTypeCommonBase:

    Methods

    ObjCInterfaceType(
        const clang::ObjCInterfaceDecl* D)

    Declared at: clang/include/clang/AST/Type.h:6158

    Parameters

    const clang::ObjCInterfaceDecl* D

    static bool classof(const clang::Type* T)

    Declared at: clang/include/clang/AST/Type.h:6169

    Parameters

    const clang::Type* T

    clang::QualType desugar() const

    Declared at: clang/include/clang/AST/Type.h:6167

    clang::ObjCInterfaceDecl* getDecl() const

    Description

    Get the declaration of this interface.

    Declared at: clang/include/clang/AST/Type.h:6164

    bool isSugared() const

    Declared at: clang/include/clang/AST/Type.h:6166