16 #ifndef OPENKALMAN_GET_HASH_CODE_HPP 17 #define OPENKALMAN_GET_HASH_CODE_HPP 20 #include "coordinates/interfaces/coordinate_descriptor_traits.hpp" 30 template<descriptor Arg>
31 constexpr std::convertible_to<std::size_t>
auto 33 template<
typename Arg, std::enable_if_t<descriptor<Arg>,
int> = 0>
38 if constexpr (values::index<Arg>)
40 return values::cast_to<std::size_t>(arg);
44 using U = std::decay_t<stdex::unwrap_reference_t<Arg>>;
46 if constexpr (std::is_same_v<U, Arg>)
return Traits::hash_code(arg);
47 else return Traits::hash_code(arg.get());
Definition for values::index.
Definition: get_descriptor_dimension.hpp:25
constexpr auto get_descriptor_hash_code(const Arg &arg)
Obtain a unique hash code for an coordinates::descriptor.
Definition: get_descriptor_hash_code.hpp:36
Definition for coordinates::descriptor.
Traits for coordinates::pattern objects.
Definition: coordinate_descriptor_traits.hpp:36