KUMI v3.1.0
Exquisite Epidote
Loading...
Searching...
No Matches

◆ unique()

template<concepts::product_type T>
auto kumi::unique ( T && t)
inlinenodiscardconstexpr

Returns a product type with consecutive duplicate types removed (pairwise uniqueness).

Parameters
tProduct type to process
Returns
A product type containing elements of t with consecutive duplicates removed.

On record types, this function operates on the underlying values, not on the fields themselves.

Helper type

namespace kumi
{
template<product_type T> struct unique;
template<product_type T>
using unique_t = typename unique<T>::type;
}
constexpr auto unique(T &&t)
Returns a product type with consecutive duplicate types removed (pairwise uniqueness).
Definition unique.hpp:93
Main KUMI namespace.
Definition algorithm.hpp:11

Computes the type returned by a call to kumi::unique.

Examples:

Tuple:

#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
tuple a = {1, 2, 'x', 3, 1.f, 2.f};
std::cout << kumi::unique(a) << "\n";
}
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:33

Record:

#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
auto a = kumi::record{"a"_id = 1, "b"_id = 2, "c"_id = 'x', "d"_id = 3,"e"_id = 1.f, "f"_id = 2.f};
std::cout << kumi::unique(a) << "\n";
}
Fixed-size collection of heterogeneous tagged fields, tags are unique.
Definition record.hpp:36