header_utils
Loading...
Searching...
No Matches
Sentinel Optional

Contains sentinel_optional. More...

Classes

struct  ghassanpl::sentinel_optional< T, SENTINEL, EQ >
 An equivalent to std::optional<T> except that instead of keeping an additional bool to indicate value presence, it uses one of the potential values of T as a "sentinel" value to indicate nullopt. More...

Functions

template<class T, std::enable_if_t< std::is_constructible_v< std::decay_t< T >, T >, int > = 0>
constexpr sentinel_optional< std::decay_t< T > > ghassanpl::make_sentinel_optional (T &&value) noexcept(noexcept(sentinel_optional< std::decay_t< T > >{std::forward< T >(value)}))
template<class T, class... TYPES, std::enable_if_t< std::is_constructible_v< T, TYPES... >, int > = 0>
constexpr sentinel_optional< T > ghassanpl::make_optional (TYPES &&... args) noexcept(noexcept(sentinel_optional< T >{std::in_place, std::forward< TYPES >(args)...}))

Detailed Description

Function Documentation

◆ make_optional()

template<class T, class... TYPES, std::enable_if_t< std::is_constructible_v< T, TYPES... >, int > = 0>
sentinel_optional< T > ghassanpl::make_optional ( TYPES &&... args)
nodiscardconstexprnoexcept

Definition at line 310 of file soptional.h.

◆ make_sentinel_optional()

template<class T, std::enable_if_t< std::is_constructible_v< std::decay_t< T >, T >, int > = 0>
sentinel_optional< std::decay_t< T > > ghassanpl::make_sentinel_optional ( T && value)
nodiscardconstexprnoexcept

Definition at line 305 of file soptional.h.