|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
A type that plays the role of an initial object — either the canonical global Zero (std::nullptr_t, the unique initial of the ambient category of sets) or an opt-in structural witness via the is_initial_object_tag typedef.
More...
A type that plays the role of an initial object — either the canonical global Zero (std::nullptr_t, the unique initial of the ambient category of sets) or an opt-in structural witness via the is_initial_object_tag typedef.
The strict std::same_as<T, Zero> branch is the historical reading: Zero is the unique initial in the umbrella category Set. The tag-discovery branch admits structural witness types declared downstream — e.g. :lattice::LatticeBottom<T, Rel> registers itself as an initial object of the lattice over (T, Rel) viewed as a thin category (#698 Slice 4).
Categorical content: initial / terminal exist relative to a category. The strict global reading covers Set; the tag-based extension lets sub-categories (lattices, posets, …) name their own initial-witness types without parameterising the concept by category.