class Optional

Declaration

template <typename T>
class Optional { /* full declaration omitted */ };

Declared at: llvm/include/llvm/ADT/Optional.h:261

Templates

T

Member Variables

private optional_detail::OptionalStorage<T> Storage

Method Overview

  • public constexpr Optional<T>(llvm::NoneType)
  • public constexpr Optional<T>(const T & y)
  • public Optional<T>(const Optional<T> & O)
  • public constexpr Optional<T>(T && y)
  • public Optional<T>(Optional<T> && O)
  • public template <typename... ArgTypes>constexpr Optional<T>(llvm::in_place_t, ArgTypes &&... Args)
  • public Optional<T>()
  • public static constexpr Optional<T> create(const T * y)
  • public template <typename... ArgTypes>void emplace(ArgTypes &&... Args)
  • public constexpr const T * getPointer() const
  • public T * getPointer()
  • public T & getValue() &
  • public T && getValue() &&
  • public constexpr const T & getValue() const &
  • public template <typename U>constexpr T getValueOr(U && alt) const &
  • public template <typename U>T getValueOr(U && alt) &&
  • public constexpr bool hasValue() const
  • public constexpr bool has_value() const
  • public template <class Function>auto map(const Function & F) const & -> Optional<decltype(F(value()))>
  • public template <class Function>auto map(const Function & F) && -> Optional<decltype(F(std::move(* this).value()))>
  • public constexpr bool operator bool() const
  • public void reset()
  • public T & value() &
  • public T && value() &&
  • public constexpr const T & value() const &
  • public template <typename U>constexpr T value_or(U && alt) const &
  • public template <typename U>T value_or(U && alt) &&

Methods

constexpr Optional<T>(llvm::NoneType)

Declared at: llvm/include/llvm/ADT/Optional.h:268

Parameters

llvm::NoneType

constexpr Optional<T>(const T& y)

Declared at: llvm/include/llvm/ADT/Optional.h:270

Parameters

const T& y

Optional<T>(const Optional<T>& O)

Declared at: llvm/include/llvm/ADT/Optional.h:271

Parameters

const Optional<T>& O

constexpr Optional<T>(T&& y)

Declared at: llvm/include/llvm/ADT/Optional.h:273

Parameters

T&& y

Optional<T>(Optional<T>&& O)

Declared at: llvm/include/llvm/ADT/Optional.h:274

Parameters

Optional<T>&& O

template <typename... ArgTypes>
constexpr Optional<T>(llvm::in_place_t,
                      ArgTypes&&... Args)

Declared at: llvm/include/llvm/ADT/Optional.h:277

Templates

ArgTypes

Parameters

llvm::in_place_t
ArgTypes&&... Args

Optional<T>()

Declared at: llvm/include/llvm/ADT/Optional.h:267

static constexpr Optional<T> create(const T* y)

Declared at: llvm/include/llvm/ADT/Optional.h:291

Parameters

const T* y

template <typename... ArgTypes>
void emplace(ArgTypes&&... Args)

Description

Create a new object by constructing it in place with the given arguments.

Declared at: llvm/include/llvm/ADT/Optional.h:287

Templates

ArgTypes

Parameters

ArgTypes&&... Args

constexpr const T* getPointer() const

Declared at: llvm/include/llvm/ADT/Optional.h:303

T* getPointer()

Declared at: llvm/include/llvm/ADT/Optional.h:304

T& getValue() &

Declared at: llvm/include/llvm/ADT/Optional.h:308

T&& getValue() &&

Declared at: llvm/include/llvm/ADT/Optional.h:336

constexpr const T& getValue() const&

Declared at: llvm/include/llvm/ADT/Optional.h:306

template <typename U>
constexpr T getValueOr(U&& alt) const&

Declared at: llvm/include/llvm/ADT/Optional.h:323

Templates

U

Parameters

U&& alt

template <typename U>
T getValueOr(U&& alt) &&

Declared at: llvm/include/llvm/ADT/Optional.h:343

Templates

U

Parameters

U&& alt

constexpr bool hasValue() const

Declared at: llvm/include/llvm/ADT/Optional.h:312

constexpr bool has_value() const

Declared at: llvm/include/llvm/ADT/Optional.h:311

template <class Function>
auto map(const Function& F)
    const& -> Optional<decltype(F(value()))>

Description

Apply a function to the value if present; otherwise return None.

Declared at: llvm/include/llvm/ADT/Optional.h:329

Templates

Function

Parameters

const Function& F

template <class Function>
auto map(const Function& F) && -> Optional<
    decltype(F(std::move(*this).value()))>

Description

Apply a function to the value if present; otherwise return None.

Declared at: llvm/include/llvm/ADT/Optional.h:349

Templates

Function

Parameters

const Function& F

constexpr bool operator bool() const

Declared at: llvm/include/llvm/ADT/Optional.h:310

void reset()

Declared at: llvm/include/llvm/ADT/Optional.h:301

T& value() &

Declared at: llvm/include/llvm/ADT/Optional.h:307

T&& value() &&

Declared at: llvm/include/llvm/ADT/Optional.h:335

constexpr const T& value() const&

Declared at: llvm/include/llvm/ADT/Optional.h:305

template <typename U>
constexpr T value_or(U&& alt) const&

Declared at: llvm/include/llvm/ADT/Optional.h:318

Templates

U

Parameters

U&& alt

template <typename U>
T value_or(U&& alt) &&

Declared at: llvm/include/llvm/ADT/Optional.h:339

Templates

U

Parameters

U&& alt