template<class I>
std::default_initializable<I>
&& requires(const I &ci, I &i)
{
{ ci.empty() } -> std::convertible_to<bool>;
{ ci.signature() } -> std::same_as<hash_t>;
{ ci.age() } -> std::convertible_to<individual::age_t>;
{ i.inc_age() } -> std::same_as<void>;
}
Definition individual.h:93