## Uses of Interface
org.eclipse.cdt.core.dom.ast.IASTDeclaration

Packages that use IASTDeclaration
org.eclipse.cdt.core.dom.ast
org.eclipse.cdt.core.dom.ast.c
org.eclipse.cdt.core.dom.ast.cpp
org.eclipse.cdt.core.dom.ast.gnu.c
org.eclipse.cdt.core.dom.ast.gnu.cpp

### Uses of IASTDeclaration in org.eclipse.cdt.core.dom.ast

Subinterfaces of IASTDeclaration in org.eclipse.cdt.core.dom.ast
`interface` `IASTASMDeclaration` ASM Statement as a Declaration.
`interface` `IASTFunctionDefinition` This is a function definition, i.e. it has a body.
`interface` `IASTProblemDeclaration` This interface represents a parse problem where we tried to match against a declaration.
`interface` `IASTSimpleDeclaration` This is a simple declaration which contains a sequence of declSpecifiers followed by a list of declarators.

Fields in org.eclipse.cdt.core.dom.ast declared as IASTDeclaration
`static IASTDeclaration[]` IASTDeclaration.`EMPTY_DECLARATION_ARRAY`

Methods in org.eclipse.cdt.core.dom.ast that return IASTDeclaration
`IASTDeclaration` IASTDeclaration.`copy()`
`IASTDeclaration` IASTDeclaration.`copy(IASTNode.CopyStyle style)`
`IASTDeclaration` IASTDeclarationStatement.`getDeclaration()` Gets the declaration introduced by this statement.
`IASTDeclaration[]` IASTTranslationUnit.`getDeclarations()` A translation unit contains an ordered sequence of declarations.
`IASTDeclaration[]` IASTDeclarationListOwner.`getDeclarations(boolean includeInactive)` Returns the array of declarations.
`IASTDeclaration[]` IASTCompositeTypeSpecifier.`getMembers()` Returns a list of member declarations.

Methods in org.eclipse.cdt.core.dom.ast with parameters of type IASTDeclaration
`void` IASTTranslationUnit.`addDeclaration(IASTDeclaration declaration)` Adds declaration to translation unit.
`void` IASTDeclarationListOwner.`addDeclaration(IASTDeclaration declaration)` Adds a declaration to the owner.
`void` IASTCompositeTypeSpecifier.`addMemberDeclaration(IASTDeclaration declaration)` Adds a member declaration.
`int` ASTVisitor.`leave(IASTDeclaration declaration)`
`int` ASTGenericVisitor.`leave(IASTDeclaration declaration)`
`IASTDeclarationStatement` INodeFactory.`newDeclarationStatement(IASTDeclaration declaration)`
`void` IASTDeclarationStatement.`setDeclaration(IASTDeclaration declaration)` Set the declaration for this statement.
`int` ASTVisitor.`visit(IASTDeclaration declaration)`
`int` ASTGenericVisitor.`visit(IASTDeclaration declaration)`

### Uses of IASTDeclaration in org.eclipse.cdt.core.dom.ast.c

Methods in org.eclipse.cdt.core.dom.ast.c with parameters of type IASTDeclaration
`ICASTKnRFunctionDeclarator` ICNodeFactory.`newKnRFunctionDeclarator(IASTName[] parameterNames, IASTDeclaration[] parameterDeclarations)`

### Uses of IASTDeclaration in org.eclipse.cdt.core.dom.ast.cpp

Subinterfaces of IASTDeclaration in org.eclipse.cdt.core.dom.ast.cpp
`interface` `ICPPASTAliasDeclaration` Represents a C++ alias declaration.
`interface` `ICPPASTExplicitTemplateInstantiation` This interface represents an explicit template instantiation.
`interface` `ICPPASTFunctionDefinition` In c++ the a function definition for a constructor may contain member initializers.
`interface` `ICPPASTFunctionWithTryBlock` Models a function defined with a try block, which is a function definition: void func() try { } catch (...) { }
`interface` `ICPPASTInitCapture` Init capture for a lambda expression, introduced in C++14.
`interface` `ICPPASTLinkageSpecification` This interface represents a linkage specification. e.g. extern "C" { ... }
`interface` `ICPPASTNamespaceAlias` This interface represents a namespace alias in C++, e.g. namespace ABC { int* x; } namespace DEF = ABC;
`interface` `ICPPASTNamespaceDefinition` This interface represents a namespace definition in C++.
`interface` `ICPPASTStaticAssertDeclaration` Models static assertions: `static_assert(false, "message");`
`interface` `ICPPASTTemplateDeclaration` Template declaration.
`interface` `ICPPASTTemplateSpecialization` This interface represents a template specialization.
`interface` `ICPPASTUsingDeclaration` This interface represents a using declaration.
`interface` `ICPPASTUsingDirective` This interface represents a C++ using directive.
`interface` `ICPPASTVisibilityLabel` C++ allows for visibility labels to be mixed with declarations in class specifiers.

Methods in org.eclipse.cdt.core.dom.ast.cpp that return IASTDeclaration
`IASTDeclaration` ICPPASTWhileStatement.`getConditionDeclaration()` Get the condition declaration.
`IASTDeclaration` ICPPASTIfStatement.`getConditionDeclaration()` Returns the condition declaration.
`IASTDeclaration` ICPPASTForStatement.`getConditionDeclaration()`
`IASTDeclaration` ICPPASTSwitchStatement.`getControllerDeclaration()` In C++, a switch statement can be contorller by a declaration.
`IASTDeclaration` ICPPASTTemplateSpecialization.`getDeclaration()` Get the declaration.
`IASTDeclaration` ICPPASTTemplateDeclaration.`getDeclaration()` Returns the template declaration.
`IASTDeclaration` ICPPASTRangeBasedForStatement.`getDeclaration()` Returns the for-range-declaration
`IASTDeclaration` ICPPASTExplicitTemplateInstantiation.`getDeclaration()` Get the owned declaration.
`IASTDeclaration` ICPPASTCatchHandler.`getDeclaration()` Returns the declaration.
`IASTDeclaration[]` ICPPASTNamespaceDefinition.`getDeclarations()` A namespace contains an ordered sequence of declarations.
`IASTDeclaration[]` ICPPASTLinkageSpecification.`getDeclarations()` Returns all of the declarations.

Methods in org.eclipse.cdt.core.dom.ast.cpp with parameters of type IASTDeclaration
`void` ICPPASTNamespaceDefinition.`addDeclaration(IASTDeclaration declaration)` Adds a declaration to the namespace.
`void` ICPPASTLinkageSpecification.`addDeclaration(IASTDeclaration declaration)` Adds another declaration to the linkage.
`ICPPASTCatchHandler` ICPPNodeFactory.`newCatchHandler(IASTDeclaration decl, IASTStatement body)`
`ICPPASTExplicitTemplateInstantiation` ICPPNodeFactory.`newExplicitTemplateInstantiation(IASTDeclaration declaration)`
`ICPPASTForStatement` ICPPNodeFactory.`newForStatement(IASTStatement init, IASTDeclaration condition, IASTExpression iterationExpression, IASTStatement body)`
`ICPPASTIfStatement` ICPPNodeFactory.`newIfStatement(IASTDeclaration condition, IASTStatement then, IASTStatement elseClause)`
`ICPPASTSwitchStatement` ICPPNodeFactory.`newSwitchStatement(IASTDeclaration controller, IASTStatement body)`
`ICPPASTTemplateDeclaration` ICPPNodeFactory.`newTemplateDeclaration(IASTDeclaration declaration)`
`ICPPASTTemplateSpecialization` ICPPNodeFactory.`newTemplateSpecialization(IASTDeclaration declaration)`
`ICPPASTWhileStatement` ICPPNodeFactory.`newWhileStatement(IASTDeclaration condition, IASTStatement body)`
`void` ICPPASTWhileStatement.`setConditionDeclaration(IASTDeclaration declaration)` Set the condition declaration.
`void` ICPPASTIfStatement.`setConditionDeclaration(IASTDeclaration d)` Sets the condition declaration.
`void` ICPPASTForStatement.`setConditionDeclaration(IASTDeclaration d)`
`void` ICPPASTSwitchStatement.`setControllerDeclaration(IASTDeclaration d)` In C++, a switch statement can be contorller by a declaration.
`void` ICPPASTTemplateSpecialization.`setDeclaration(IASTDeclaration declaration)` Set the declaration.
`void` ICPPASTTemplateDeclaration.`setDeclaration(IASTDeclaration declaration)` Sets the template declaration.
`void` ICPPASTRangeBasedForStatement.`setDeclaration(IASTDeclaration decl)` Not allowed on frozen AST.
`void` ICPPASTExplicitTemplateInstantiation.`setDeclaration(IASTDeclaration declaration)` Set the owned declaration.
`void` ICPPASTCatchHandler.`setDeclaration(IASTDeclaration decl)` Sets the declaration.

### Uses of IASTDeclaration in org.eclipse.cdt.core.dom.ast.gnu.c

Methods in org.eclipse.cdt.core.dom.ast.gnu.c that return IASTDeclaration
`IASTDeclaration[]` ICASTKnRFunctionDeclarator.`getParameterDeclarations()` Get parameters declarations.

Methods in org.eclipse.cdt.core.dom.ast.gnu.c with parameters of type IASTDeclaration
`void` ICASTKnRFunctionDeclarator.`setParameterDeclarations(IASTDeclaration[] decls)` Sets the parameter lists.

### Uses of IASTDeclaration in org.eclipse.cdt.core.dom.ast.gnu.cpp

Subinterfaces of IASTDeclaration in org.eclipse.cdt.core.dom.ast.gnu.cpp
`interface` `IGPPASTExplicitTemplateInstantiation` Deprecated. Replaced by `ICPPASTExplicitTemplateInstantiation`