gimo v0.1.0
Loading...
Searching...
No Matches
gimo::nullable Concept Reference

Concept describing a type that can be used as a monad in the pipeline. More...

#include <Common.hpp>

Concept definition

template<typename T>
concept gimo::nullable = requires {
requires null_for<decltype(traits<std::remove_cvref_t<T>>::null), std::remove_cvref_t<T>>;
requires detail::readable_value<T>;
}
Concept describing the relationship between a Nullable type and its null state.
Definition Common.hpp:136
Concept describing a type that can be used as a monad in the pipeline.
Definition Common.hpp:200
The central customization point for the library.
Definition Common.hpp:102

Detailed Description

Concept describing a type that can be used as a monad in the pipeline.

Template Parameters
TThe type to check.

A type is nullable if:

  1. It has a valid gimo::traits specialization defining a null data member.
  2. It satisfies the null_for relationship with that null.
  3. It allows value extraction via gimo::traits::value(), member operator*, or ADL value() (in that priority).