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)
constexpr Optional<T>(llvm::NoneType)
Declared at: llvm/include/llvm/ADT/Optional.h:268
Parameters
- llvm::NoneType
¶constexpr Optional<T>(const T& y)
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)
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)
constexpr Optional<T>(T&& y)
Declared at: llvm/include/llvm/ADT/Optional.h:273
Parameters
- T&& y
¶Optional<T>(Optional<T>&& O)
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)
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>()
Optional<T>()
Declared at: llvm/include/llvm/ADT/Optional.h:267
¶static constexpr Optional<T> create(const T* y)
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)
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
constexpr const T* getPointer() const
Declared at: llvm/include/llvm/ADT/Optional.h:303
¶T* getPointer()
T* getPointer()
Declared at: llvm/include/llvm/ADT/Optional.h:304
¶T& getValue() &
T& getValue() &
Declared at: llvm/include/llvm/ADT/Optional.h:308
¶T&& getValue() &&
T&& getValue() &&
Declared at: llvm/include/llvm/ADT/Optional.h:336
¶constexpr const T& getValue() const&
constexpr const T& getValue() const&
Declared at: llvm/include/llvm/ADT/Optional.h:306
¶template <typename U>
constexpr T getValueOr(U&& alt) const&
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) &&
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
constexpr bool hasValue() const
Declared at: llvm/include/llvm/ADT/Optional.h:312
¶constexpr bool has_value() const
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()))>
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()))>
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
constexpr bool operator bool() const
Declared at: llvm/include/llvm/ADT/Optional.h:310
¶void reset()
void reset()
Declared at: llvm/include/llvm/ADT/Optional.h:301
¶T& value() &
T& value() &
Declared at: llvm/include/llvm/ADT/Optional.h:307
¶T&& value() &&
T&& value() &&
Declared at: llvm/include/llvm/ADT/Optional.h:335
¶constexpr const T& value() const&
constexpr const T& value() const&
Declared at: llvm/include/llvm/ADT/Optional.h:305
¶template <typename U>
constexpr T value_or(U&& alt) const&
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) &&
template <typename U>
T value_or(U&& alt) &&
Declared at: llvm/include/llvm/ADT/Optional.h:339
Templates
- U
Parameters
- U&& alt