mrdocs::sentinel_traits
Defines a customization point for types that have an intrinsic sentinel value denoting “null”.
Synopsis
Declared in <mrdocs/ADT/Nullable.hpp>
template<class T>
struct sentinel_traits;
Description
Users may specialize this trait for their own types to declare a sentinel‐based null representation.
When enabled, nullable semantics can be implemented in terms of the sentinel without storing a separate engaged/disengaged flag.
Contract for specializations: ‐ Provide static constexpr T sentinel() noexcept; which returns the distinguished null value. ‐ Provide static constexpr bool is_sentinel(const T&) noexcept; which recognizes the null value.
If a type does not have a well‐defined sentinel, leave the primary template in effect.
Notes ‐ Built‐in pointer types and std::nullptr_t are pre‐specialized to use nullptr as the sentinel.
Created with MrDocs