34concept SomeNumberType = std::is_arithmetic_v<T> && !std::is_same_v<T, bool> && !std::is_const_v<T>;
45 auto store = std::array{values...};
46 auto end = store.end();
47 std::ranges::sort(store);
48 return (std::unique(std::begin(store), end) == end);
57template <
typename... Types>
61 constexpr std::array<std::string_view,
sizeof...(Types)> kNAMES = {Types::kNAME...};
62 return !std::ranges::any_of(kNAMES, [&](std::string_view
const& name1) {
63 return std::ranges::any_of(kNAMES, [&](std::string_view
const& name2) {
64 return &name1 != &name2 && name1 == name2;
This namespace contains various utilities.
Definition AccountUtils.hpp:30
static consteval auto hasNoDuplicates(auto &&... values)
Checks that the list of given values contains no duplicates.
Definition Concepts.hpp:43
constexpr bool hasNoDuplicateNames()
Checks that the list of given type contains no duplicates.
Definition Concepts.hpp:59