file
optional.hNamespaces
- namespace rll
- Contract-programming related functions and classes.
Classes
- struct rll::nullopt_t
- A tag type to represent an empty optional.
- struct rll::nullopt_t::do_not_use
- class rll::bad_optional_access
-
template <class T>class rll::optional
-
template <class T>class rll::optional<T&>
Functions
-
template <class T = detail::i_am_secret, class U, class Ret = detail::conditional_t<std::auto make_optional(U&& v) → optional<Ret> constexpr
is_same<T, detail::i_am_secret>::value, detail::decay_t<U>, T>> -
template <class T, class... Args>auto make_optional(Args && ... args) → optional<T> constexpr
-
template <class T, class U, class... Args>auto make_optional(std::
initializer_list<U> il, Args && ... args) → optional<T> constexpr -
template <class T, class U>auto operator!=(optional<T> const& lhs, optional<U> const& rhs) → bool constexpr
-
template <class T>auto operator!=(optional<T> const& lhs, nullopt_t) → bool constexpr noexcept
-
template <class T>auto operator!=(nullopt_t, optional<T> const& rhs) → bool constexpr noexcept
-
template <class T, class U>auto operator!=(optional<T> const& lhs, U const& rhs) → bool constexpr
-
template <class T, class U>auto operator!=(U const& lhs, optional<T> const& rhs) → bool constexpr
-
template <class T, class U>auto operator<(optional<T> const& lhs, optional<U> const& rhs) → bool constexpr
-
template <class T>auto operator<(optional<T> const&, nullopt_t) → bool constexpr noexcept
-
template <class T>auto operator<(nullopt_t, optional<T> const& rhs) → bool constexpr noexcept
-
template <class T, class U>auto operator<(optional<T> const& lhs, U const& rhs) → bool constexpr
-
template <class T, class U>auto operator<(U const& lhs, optional<T> const& rhs) → bool constexpr
-
template <class T, class U>auto operator<=(optional<T> const& lhs, optional<U> const& rhs) → bool constexpr
-
template <class T>auto operator<=(optional<T> const& lhs, nullopt_t) → bool constexpr noexcept
-
template <class T>auto operator<=(nullopt_t, optional<T> const&) → bool constexpr noexcept
-
template <class T, class U>auto operator<=(optional<T> const& lhs, U const& rhs) → bool constexpr
-
template <class T, class U>auto operator<=(U const& lhs, optional<T> const& rhs) → bool constexpr
-
template <class T, class U>auto operator==(optional<T> const& lhs, optional<U> const& rhs) → bool constexpr
- Compares two optional objects.
-
template <class T>auto operator==(optional<T> const& lhs, nullopt_t) → bool constexpr noexcept
- Compares an optional to a
nullopt
-
template <class T>auto operator==(nullopt_t, optional<T> const& rhs) → bool constexpr noexcept
-
template <class T, class U>auto operator==(optional<T> const& lhs, U const& rhs) → bool constexpr
- Compares the optional with a value.
-
template <class T, class U>auto operator==(U const& lhs, optional<T> const& rhs) → bool constexpr
-
template <class T, class U>auto operator>(optional<T> const& lhs, optional<U> const& rhs) → bool constexpr
-
template <class T>auto operator>(optional<T> const& lhs, nullopt_t) → bool constexpr noexcept
-
template <class T>auto operator>(nullopt_t, optional<T> const&) → bool constexpr noexcept
-
template <class T, class U>auto operator>(optional<T> const& lhs, U const& rhs) → bool constexpr
-
template <class T, class U>auto operator>(U const& lhs, optional<T> const& rhs) → bool constexpr
-
template <class T, class U>auto operator>=(optional<T> const& lhs, optional<U> const& rhs) → bool constexpr
-
template <class T>auto operator>=(optional<T> const&, nullopt_t) → bool constexpr noexcept
-
template <class T>auto operator>=(nullopt_t, optional<T> const& rhs) → bool constexpr noexcept
-
template <class T, class U>auto operator>=(optional<T> const& lhs, U const& rhs) → bool constexpr
-
template <class T, class U>auto operator>=(U const& lhs, optional<T> const& rhs) → bool constexpr
-
template <class T>optional(T) → optional< T >
-
template <typename T>auto some(T&& t) → optional<std::
decay_t<T>> - Wrap a value in an optional.
-
template <class T, detail::enable_if_t<std::void swap(optional<T>& lhs, optional<T>& rhs) noexcept(…)
is_move_constructible<T>::value>* = nullptr, detail::enable_if_t<detail::is_swappable<T>::value>* = nullptr>
Variables
Defines
- #define TL_OPTIONAL_11_CONSTEXPR
- #define TL_OPTIONAL_CXX14
- #define TL_OPTIONAL_IS_TRIVIALLY_COPY_ASSIGNABLE(T)
- #define TL_OPTIONAL_IS_TRIVIALLY_COPY_CONSTRUCTIBLE(T)
- #define TL_OPTIONAL_IS_TRIVIALLY_DESTRUCTIBLE(T)