class InitializationKind

Declaration

class InitializationKind { /* full declaration omitted */ };

Description

Describes the kind of initialization being performed, along with location information for tokens related to the initialization (equal sign, parentheses).

Declared at: clang/include/clang/Sema/Initialization.h:566

Member Variables

private clang::InitializationKind::InitKind Kind
The kind of initialization being performed.
private clang::InitializationKind::InitContext Context
The context of the initialization.
private clang::SourceLocation[3] Locations
The source locations involved in the initialization.

Method Overview

  • public bool AllowExplicit() const
  • public static clang::InitializationKind CreateCStyleCast(clang::SourceLocation StartLoc, clang::SourceRange TypeRange, bool InitList)
  • public static clang::InitializationKind CreateCast(clang::SourceRange TypeRange)
  • public static clang::InitializationKind CreateCopy(clang::SourceLocation InitLoc, clang::SourceLocation EqualLoc, bool AllowExplicitConvs = false)
  • public static clang::InitializationKind CreateDefault(clang::SourceLocation InitLoc)
  • public static clang::InitializationKind CreateDirect(clang::SourceLocation InitLoc, clang::SourceLocation LParenLoc, clang::SourceLocation RParenLoc)
  • public static clang::InitializationKind CreateDirectList(clang::SourceLocation InitLoc, clang::SourceLocation LBraceLoc, clang::SourceLocation RBraceLoc)
  • public static clang::InitializationKind CreateDirectList(clang::SourceLocation InitLoc)
  • public static clang::InitializationKind CreateForInit(clang::SourceLocation Loc, bool DirectInit, clang::Expr * Init)
  • public static clang::InitializationKind CreateFunctionalCast(clang::SourceRange TypeRange, bool InitList)
  • public static clang::InitializationKind CreateValue(clang::SourceLocation InitLoc, clang::SourceLocation LParenLoc, clang::SourceLocation RParenLoc, bool isImplicit = false)
  • private InitializationKind(clang::InitializationKind::InitKind Kind, clang::InitializationKind::InitContext Context, clang::SourceLocation Loc1, clang::SourceLocation Loc2, clang::SourceLocation Loc3)
  • public bool allowExplicitConversionFunctionsInRefBinding() const
  • public clang::SourceLocation getEqualLoc() const
  • public clang::InitializationKind::InitKind getKind() const
  • public clang::SourceLocation getLocation() const
  • public clang::SourceRange getParenOrBraceRange() const
  • public clang::SourceRange getRange() const
  • public bool hasParenOrBraceRange() const
  • public bool isCStyleCast() const
  • public bool isCStyleOrFunctionalCast() const
  • public bool isCopyInit() const
  • public bool isExplicitCast() const
  • public bool isFunctionalCast() const
  • public bool isImplicitValueInit() const
  • public bool isStaticCast() const

Methods

bool AllowExplicit() const

Description

Retrieve whether this initialization allows the use of explicit constructors.

Declared at: clang/include/clang/Sema/Initialization.h:759

static clang::InitializationKind CreateCStyleCast(
    clang::SourceLocation StartLoc,
    clang::SourceRange TypeRange,
    bool InitList)

Description

Create a direct initialization for a C-style cast.

Declared at: clang/include/clang/Sema/Initialization.h:654

Parameters

clang::SourceLocation StartLoc
clang::SourceRange TypeRange
bool InitList

static clang::InitializationKind CreateCast(
    clang::SourceRange TypeRange)

Description

Create a direct initialization due to a cast that isn't a C-style or functional cast.

Declared at: clang/include/clang/Sema/Initialization.h:648

Parameters

clang::SourceRange TypeRange

static clang::InitializationKind CreateCopy(
    clang::SourceLocation InitLoc,
    clang::SourceLocation EqualLoc,
    bool AllowExplicitConvs = false)

Description

Create a copy initialization.

Declared at: clang/include/clang/Sema/Initialization.h:673

Parameters

clang::SourceLocation InitLoc
clang::SourceLocation EqualLoc
bool AllowExplicitConvs = false

static clang::InitializationKind CreateDefault(
    clang::SourceLocation InitLoc)

Description

Create a default initialization.

Declared at: clang/include/clang/Sema/Initialization.h:682

Parameters

clang::SourceLocation InitLoc

static clang::InitializationKind CreateDirect(
    clang::SourceLocation InitLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation RParenLoc)

Description

Create a direct initialization.

Declared at: clang/include/clang/Sema/Initialization.h:627

Parameters

clang::SourceLocation InitLoc
clang::SourceLocation LParenLoc
clang::SourceLocation RParenLoc

static clang::InitializationKind CreateDirectList(
    clang::SourceLocation InitLoc,
    clang::SourceLocation LBraceLoc,
    clang::SourceLocation RBraceLoc)

Declared at: clang/include/clang/Sema/Initialization.h:639

Parameters

clang::SourceLocation InitLoc
clang::SourceLocation LBraceLoc
clang::SourceLocation RBraceLoc

static clang::InitializationKind CreateDirectList(
    clang::SourceLocation InitLoc)

Declared at: clang/include/clang/Sema/Initialization.h:634

Parameters

clang::SourceLocation InitLoc

static clang::InitializationKind CreateForInit(
    clang::SourceLocation Loc,
    bool DirectInit,
    clang::Expr* Init)

Description

Create an initialization from an initializer (which, for direct initialization from a parenthesized list, will be a ParenListExpr).

Declared at: clang/include/clang/Sema/Initialization.h:697

Parameters

clang::SourceLocation Loc
bool DirectInit
clang::Expr* Init

static clang::InitializationKind
CreateFunctionalCast(clang::SourceRange TypeRange,
                     bool InitList)

Description

Create a direct initialization for a functional cast.

Declared at: clang/include/clang/Sema/Initialization.h:665

Parameters

clang::SourceRange TypeRange
bool InitList

static clang::InitializationKind CreateValue(
    clang::SourceLocation InitLoc,
    clang::SourceLocation LParenLoc,
    clang::SourceLocation RParenLoc,
    bool isImplicit = false)

Description

Create a value initialization.

Declared at: clang/include/clang/Sema/Initialization.h:687

Parameters

clang::SourceLocation InitLoc
clang::SourceLocation LParenLoc
clang::SourceLocation RParenLoc
bool isImplicit = false

InitializationKind(
    clang::InitializationKind::InitKind Kind,
    clang::InitializationKind::InitContext
        Context,
    clang::SourceLocation Loc1,
    clang::SourceLocation Loc2,
    clang::SourceLocation Loc3)

Declared at: clang/include/clang/Sema/Initialization.h:617

Parameters

clang::InitializationKind::InitKind Kind
clang::InitializationKind::InitContext Context
clang::SourceLocation Loc1
clang::SourceLocation Loc2
clang::SourceLocation Loc3

bool allowExplicitConversionFunctionsInRefBinding()
    const

Description

Retrieve whether this initialization allows the use of explicit conversion functions when binding a reference. If the reference is the first parameter in a copy or move constructor, such conversions are permitted even though we are performing copy-initialization.

Declared at: clang/include/clang/Sema/Initialization.h:765

clang::SourceLocation getEqualLoc() const

Description

Retrieve the location of the equal sign for copy initialization (if present).

Declared at: clang/include/clang/Sema/Initialization.h:750

clang::InitializationKind::InitKind getKind()
    const

Description

Determine the initialization kind.

Declared at: clang/include/clang/Sema/Initialization.h:708

clang::SourceLocation getLocation() const

Description

Retrieve the location at which initialization is occurring.

Declared at: clang/include/clang/Sema/Initialization.h:741

clang::SourceRange getParenOrBraceRange() const

Description

Retrieve the source range containing the locations of the open and closing parentheses or braces for value, direct, and direct list initializations.

Declared at: clang/include/clang/Sema/Initialization.h:778

clang::SourceRange getRange() const

Description

Retrieve the source range that covers the initialization.

Declared at: clang/include/clang/Sema/Initialization.h:744

bool hasParenOrBraceRange() const

Description

Determine whether this initialization has a source range containing the locations of open and closing parentheses or braces.

Declared at: clang/include/clang/Sema/Initialization.h:771

bool isCStyleCast() const

Description

Determine whether this is a C-style cast.

Declared at: clang/include/clang/Sema/Initialization.h:726

bool isCStyleOrFunctionalCast() const

Description

Determine whether this initialization is a C-style cast.

Declared at: clang/include/clang/Sema/Initialization.h:721

bool isCopyInit() const

Declared at: clang/include/clang/Sema/Initialization.h:755

bool isExplicitCast() const

Description

Determine whether this initialization is an explicit cast.

Declared at: clang/include/clang/Sema/Initialization.h:713

bool isFunctionalCast() const

Description

Determine whether this is a functional-style cast.

Declared at: clang/include/clang/Sema/Initialization.h:731

bool isImplicitValueInit() const

Description

Determine whether this initialization is an implicit value-initialization, e.g., as occurs during aggregate initialization.

Declared at: clang/include/clang/Sema/Initialization.h:738

bool isStaticCast() const

Description

Determine whether this initialization is a static cast.

Declared at: clang/include/clang/Sema/Initialization.h:718