LeviLamina
Loading...
Searching...
No Matches
optional_ref< T > Class Template Reference

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_refoperator= (optional_ref &&) noexcept=default
 
constexpr optional_ref (optional_ref const &) noexcept=default
 
LL_MAY_CONSTEXPR optional_refoperator= (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 >
 

The documentation for this class was generated from the following file: