llvm::MaybeAlign

This struct is a compact representation of a valid (power of two) or undefined (0) alignment.

Synopsis

Declared in <llvm/Support/Alignment.h>

struct MaybeAlign
    : std::optional<Align>

Base Classes

NameDescription
std::optional<Align>Class template for optional values.

Type Aliases

Name
value_type

Member Functions

NameDescription
MaybeAlign [constructor]Constructors
operator= Assignment operators
and_then
emplace
has_value
operator* Dereference operators
operator-> Member access operators
or_else
reset
swap
transform
value
valueOrOne For convenience, returns a valid alignment or 1 if undefined.
value_or
operator bool Conversion to bool

Non-Member Functions

NameDescription
DebugStrFormat optional alignment MA as a decimal string or "None" for debug logging.
decodeMaybeAlignDual operation of the encode function above.
encodeReturns a representation of the alignment that encodes undefined as 0.
operator!=Return true if optional alignment Lhs is set.
operator!=Return true if optional alignments Lhs and Rhs differ.
operator!=Return true if optional alignment Lhs is unset or differs from Rhs.
operator<Relational less-than is deleted for MaybeAlign vs Align.
operator<Relational less-than is deleted for MaybeAlign vs MaybeAlign.
operator<=Relational less-or-equal is deleted for MaybeAlign vs MaybeAlign.
operator<=Relational less-or-equal is deleted for MaybeAlign vs Align.
operator==Return true if optional alignment Lhs is set and equals Rhs.
operator==Return true if optional alignments Lhs and Rhs are both unset or equal.
operator==Return true if optional alignment Lhs is unset.
operator>Relational greater-than is deleted for MaybeAlign; compare Align values instead.
operator>Relational greater-than is deleted for MaybeAlign vs Align.
operator>=Relational greater-or-equal is deleted for MaybeAlign vs Align.
operator>=Relational greater-or-equal is deleted for MaybeAlign vs MaybeAlign.