using constructor_type = kernel_ptr(*)()using id_type = uint16_tA portable type id.
operator<(const kernel_type & rhs) const -> booloperator!=(const kernel_type & rhs) const -> booloperator==(const kernel_type & rhs) const -> booloperator!() const -> booloperator bool() constexplicithas_id() const -> boolname() const -> const char *setid(id_type rhs) -> voidid() const -> id_typeindex() const -> std::type_indexconstruct() const -> kernel_ptrkernel_type(constructor_type ctr, std::type_index idx)explicitkernel_type(id_type id, constructor_type ctr, std::type_index idx)explicitpublic std::hash< sbn::kernel_type::id_type >using argument_type = sbn::kernel_typeusing result_type = size_toperator()(const sbn::kernel_type & rhs) const -> size_toperator<<(std::ostream & out, const kernel_type & rhs) -> std::ostream &