# Package org.eclipse.cdt.core.dom.ast.cpp

Interface Summary
ICPPAliasTemplate: Represents an alias template (14.5.7).
ICPPAliasTemplateInstance: Represents an instance of an alias template (14.5.7).
ICPPASTAliasDeclaration: Represents a C++ alias declaration.
ICPPASTAlignmentSpecifier: A C++ alignment-specifier.
ICPPASTAmbiguousTemplateArgument: Place-holder in the AST for template arguments that are not yet understood.
ICPPASTArrayDeclarator: Array declarator for C++
ICPPASTArrayDesignator: Array designator, e.g.
ICPPASTArraySubscriptExpression
ICPPASTAttribute: Represents a C++11 (ISO/IEC 14882:2011 7.6) attribute.
ICPPASTAttributeList: Represents a C++11 (ISO/IEC 14882:2011 7.6.1 [dcl.attr.grammar]) attribute specifier of the form [[ attribute-list ]].
ICPPASTBinaryExpression: C++ adds a few more binary expressions over C.
ICPPASTCapture: Capture for a lambda expression, introduced in C++0x.
ICPPASTCastExpression: C++ adds in additional cast-style expressions.
ICPPASTCatchHandler: Catch handler used for try block statements or for functions with try block.
ICPPASTClassVirtSpecifier: A class-virt-specifier after a class name.
ICPPASTCompositeTypeSpecifier
ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier: Base specifiers are where a class expresses from whom it inherits.
ICPPASTCompoundStatement: Represents a block of statements in C++.
ICPPASTConstructorChainInitializer: Represents a member initializer:
ICPPASTConstructorInitializer: Represents a potentially empty list of initializers in parenthesis: ( initializer-list? )
ICPPASTConversionName: This interface represents a C++ conversion member function.
ICPPASTDeclarator: Declarator for c++.
ICPPASTDeclSpecifier: C++ adds additional modifiers and types for decl specifier sequence.
ICPPASTDecltypeSpecifier: C++ AST node for decltype-specifiers.
ICPPASTDeleteExpression: This interface represents a delete expression.
ICPPASTDesignatedInitializer: This interface represents a designated initializer, e.g.
ICPPASTDesignator: Base interface for all C-style designators.
ICPPASTElaboratedTypeSpecifier: Elaborated types specifier in C++ [dcl.type.elab].
ICPPASTEnumerationSpecifier: `enum struct : unsigned int {...}`
ICPPASTExplicitTemplateInstantiation: This interface represents an explicit template instantiation.
ICPPASTExpression: Interface for C++ expressions.
ICPPASTExpressionList
ICPPASTFieldDeclarator: Field declarator for c++.
ICPPASTFieldDesignator: Specific designator that represents a field reference.
ICPPASTFieldReference: Certain field references in C++ require the use the keyword template to specify the parse.
ICPPASTForStatement: The C++ 'for' statement.
ICPPASTFunctionCallExpression
ICPPASTFunctionDeclarator: C++ adds a few things to function declarators.
ICPPASTFunctionDefinition: In c++ the a function definition for a constructor may contain member initializers.
ICPPASTFunctionTryBlockDeclarator: Deprecated Use `ICPPASTFunctionWithTryBlock`, instead.
ICPPASTFunctionWithTryBlock: Models a function defined with a try block, which is a function definition:
ICPPASTIfStatement: The 'if' statement including the optional else clause.
ICPPASTInitCapture: Init capture for a lambda expression, introduced in C++14.
ICPPASTInitializerClause: C++ specific initializer clause.
ICPPASTInitializerList: Braced initializer list.
ICPPASTLambdaExpression: Lambda expression, introduced in C++11.
ICPPASTLinkageSpecification: This interface represents a linkage specification.
ICPPASTLiteralExpression: C++ adds additional literal types to primary expression.
ICPPASTName: AST node for names in C++ translation units.
ICPPASTNamedTypeSpecifier: C++ adds the capability of qualifying a named type specifier w/the keyword typename.
ICPPASTNamespaceAlias: This interface represents a namespace alias in C++, e.g.
ICPPASTNamespaceDefinition: This interface represents a namespace definition in C++.
ICPPASTNameSpecifier: AST node for elements of the qualifier in a qualified name.
ICPPASTNaryTypeIdExpression: A type-id expression with any number of arguments.
ICPPASTNewExpression: This interface represents a new expression.
ICPPASTOperatorName: This interface represents a C++ overloaded operator member function name.
ICPPASTPackExpandable: Interface for nodes that can potentially be pack-expansions.
ICPPASTPackExpansionExpression: Pack expansion as it can occur as an element in an expression-lists or as a non-type template argument.
ICPPASTParameterDeclaration
ICPPASTPointerToMember: This is a pointer to member pointer operator for declarators.
ICPPASTQualifiedName: This interface is a qualified name in C++.
ICPPASTRangeBasedForStatement: Represents a range-based 'for' loop.
ICPPASTReferenceOperator: This is C++'s reference operator, i.e.
ICPPASTSimpleDeclSpecifier: This interface represents a built-in type in C++.
ICPPASTSimpleTypeConstructorExpression: Functional cast expressions: simple-type-specifier (expression-list?) simple-type-specifier braced-init-list typename-specifier (expression-list?) typename-specifier braced-init-list
ICPPASTSimpleTypeTemplateParameter: This interface represents a simple type template parameter.
ICPPASTStaticAssertDeclaration: Models static assertions: `static_assert(false, "message");`
ICPPASTStructuredBindingDeclaration: This is a structured binding declaration which contains a sequence names, in square brackets, that decompose an initializer.
ICPPASTSwitchStatement
ICPPASTTemplateDeclaration: Template declaration.
ICPPASTTemplatedTypeTemplateParameter: This is a template template parameter as `V` in `template<template<typename T> class V> class CT;`
ICPPASTTemplateId
ICPPASTTemplateName: This interface represents template names which use the template disambiguator keyword.
ICPPASTTemplateParameter: Base interface for all template parameters.
ICPPASTTemplateSpecialization: This interface represents a template specialization.
ICPPASTTranslationUnit
ICPPASTTryBlockStatement: This interface represents the try block statement.
ICPPASTTypeId: Type ids in C++.
ICPPASTTypeIdExpression
ICPPASTTypenameExpression: Deprecated Unified with `ICPPASTSimpleTypeConstructorExpression`.
ICPPASTTypeTransformationSpecifier: A decl-specifier that represents the application of an intrinsic type transformation operator like __underlying_type(T).
ICPPASTUnaryExpression
ICPPASTUsingDeclaration: This interface represents a using declaration.
ICPPASTUsingDirective: This interface represents a C++ using directive.
ICPPASTVirtSpecifier: A virt-specifier at the end of a function declaration.
ICPPASTVisibilityLabel: C++ allows for visibility labels to be mixed with declarations in class specifiers.
ICPPASTVisitor: Interface for visitors to visit c-specific nodes.
ICPPASTWhileStatement: This interface accommodates C++ allows for broader while loop syntax.
ICPPBase: Represents the relationship between a class and one of its base classes.
ICPPBasicType
ICPPBinding
ICPPBlockScope
ICPPClassScope: Interface for class scopes.
ICPPClassSpecialization: Specializations of all sorts of class types.
ICPPClassTemplate
ICPPClassTemplatePartialSpecialization: This interface represents a class template partial specialization.
ICPPClassTemplatePartialSpecializationSpecialization: Interface for specializations of partial specializations.
ICPPClassType: Represents a C++ class.
ICPPConstructor
ICPPConstructorSpecialization: Binding for specializations of constructors.
ICPPDeferredFunction: Represents a reference to a function which cannot be resolved because an argument depends on a template parameter.
ICPPDeferredTemplateInstance: Deprecated use `ICPPDeferredClassInstance` instead.
ICPPEnumeration: C++ specific version of enumerations.
ICPPEnumerationSpecialization
ICPPEnumScope: Interface for enumeration scopes.
ICPPField
ICPPFieldTemplate: A field template.
ICPPFunction: Binding for c++ functions.
ICPPFunctionInstance: This interface represents an instantiation or an explicit specialization of a function template.
ICPPFunctionScope
ICPPFunctionSpecialization: Binding for specializations of functions.
ICPPFunctionTemplate: Interface for function templates
ICPPFunctionType
ICPPMember: Represents a member of a class.
ICPPMethod: Base interface for methods, also used for constructors.
ICPPMethodSpecialization: Specialization of a method.
ICPPNamespace: This interface represents a C++ namespace
ICPPNamespaceAlias
ICPPNamespaceScope: A namespace scope is either a block-scope or a namespace-scope or global scope.
ICPPNodeFactory: Factory for AST nodes for the C++ programming language.
ICPPParameter
ICPPParameterPackType: A parameter pack is not actually a type, however we model it as such in order to be able to represent function-types that contain parameter packs.
ICPPPartiallySpecializable: Something that can be partially specialized.
ICPPPartialSpecialization: A partially specialized variable or class template.
ICPPPointerToMemberType
ICPPReferenceType
ICPPScope
ICPPSpecialization: For an instantiation of a class template, the members of that instantiation will be specializations of the members of the original class template.
ICPPTemplateArgument: Models the value of a template parameter or for the argument of a template-id.
ICPPTemplateDefinition: Base interface for all template definitions including explicit (partial) specializations.
ICPPTemplateInstance: This interface represents an instantiation or an explicit specialization of a class or a function template.
ICPPTemplateNonTypeParameter: Interface for template non type parameters.
ICPPTemplateParameter: Base interface for all template parameters (non-type, type and template).
ICPPTemplateParameterMap: Models the mapping of template parameters to values, or pack-expansions.
ICPPTemplateScope: A separate template scope is used for each template declaration.
ICPPTemplateTemplateParameter: Template parameters of type template.
ICPPTemplateTypeParameter
ICPPTypeSpecialization: A common interface for ICPPClassSpecialization and ICPPEnumerationSpecialization.
ICPPUnaryTypeTransformation: A type used to represent the result of applying an unary type transformation operator like __underlying_type(T).
ICPPUsingDeclaration: A using declaration introduces a name into the declarative region in which it appears, that name is a synonym of some entity declared elsewhere The using declaration is both a declaration of a new binding and a reference to a previously declared binding
ICPPUsingDirective: Interface to model using directives.
ICPPVariable
ICPPVariableInstance: Represents an instantiation or an explicit specialization of a variable template.
ICPPVariableTemplate: A variable template.
ICPPVariableTemplatePartialSpecialization: Partial specialization of a variable template.

Class Summary
CPPASTVisitor: Deprecated you can use `ASTVisitor`, instead.
SemanticQueries: This class exposes semantic queries about C++ code to clients such as code analysis.

Enum Summary
ICPPASTClassVirtSpecifier.SpecifierKind
ICPPASTEnumerationSpecifier.ScopeStyle
ICPPASTFunctionDeclarator.RefQualifier
ICPPASTLambdaExpression.CaptureDefault: The capture default can be by copy, by reference or unspecified.
ICPPASTNaryTypeIdExpression.Operator
ICPPASTVirtSpecifier.SpecifierKind
ICPPUnaryTypeTransformation.Operator: Identifies the type transformation operator being applied.