|
LeviLamina
|
Public Member Functions | |
| constexpr | optional_ref (std::nullopt_t) noexcept |
| constexpr | optional_ref (std::nullptr_t) noexcept |
|
template<class U > requires (std::is_convertible_v<U*, T*>) | |
| constexpr | optional_ref (std::optional< U > &o) noexcept |
|
template<class U > requires (std::is_convertible_v<U*, T*>) | |
| constexpr | optional_ref (U *p) noexcept |
|
template<class U > requires (std::is_convertible_v<U*, T*>) | |
| constexpr | optional_ref (U &r) noexcept |
|
template<class U > requires (std::is_convertible_v<U*, T*>) | |
| constexpr | optional_ref (U const &r) noexcept |
|
template<class U > requires (std::is_convertible_v<U*, T*>) | |
| constexpr | optional_ref (const std::optional< U > &o) noexcept |
|
template<typename U > requires (std::is_convertible_v<U*, T*>) | |
| constexpr | optional_ref (optional_ref< U > rhs) noexcept |
| constexpr | optional_ref (optional_ref &&) noexcept=default |
| LL_MAY_CONSTEXPR optional_ref & | operator= (optional_ref &&) noexcept=default |
| constexpr | optional_ref (optional_ref const &) noexcept=default |
| LL_MAY_CONSTEXPR optional_ref & | operator= (optional_ref const &) noexcept=default |
| constexpr | operator bool () const noexcept |
| constexpr bool | has_value () const noexcept |
| constexpr T * | as_ptr () const noexcept |
| constexpr T & | value () const |
| constexpr T & | get () const |
| constexpr T & | operator* () const noexcept |
| constexpr T * | operator-> () const noexcept |
| constexpr | operator T& () const |
| constexpr | operator T* () const noexcept |
| template<class U > | |
| constexpr T & | value_or (U &right) const & |
| template<class U > | |
| constexpr T | value_or (U &&right) const && |
|
template<typename U = std::decay_t<T>> requires (std::is_constructible_v<U, T>) | |
| constexpr std::optional< U > | copy_as_optional () const |
| template<class... Types> | |
| constexpr decltype(auto) | operator() (Types &&... args) const noexcept(noexcept(std::invoke(value(), static_cast< Types && >(args)...))) |
| template<class Arg > | |
| constexpr decltype(auto) | operator[] (Arg &&index) const |
| constexpr decltype(auto) | end () const |
| constexpr decltype(auto) | begin () const |
| constexpr decltype(auto) | cend () const |
| constexpr decltype(auto) | cbegin () const |
| constexpr decltype(auto) | rend () const |
| constexpr decltype(auto) | rbegin () const |
| constexpr decltype(auto) | crend () const |
| constexpr decltype(auto) | crbegin () const |
| template<class Fn > | |
| constexpr auto | and_then (Fn &&fn) const |
| template<class Fn > | |
| constexpr auto | transform (Fn &&fn) const |
| template<std::invocable<> Fn> | |
| constexpr auto | or_else (Fn &&fn) const -> std::invoke_result_t< Fn > |