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

◆ reverse()

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

Reverse elements of a product type.

On record types, this function operates on elements as if they were ordered. The considered order is the order of declaration.

Parameters
tThe product type to reverse
Returns
A product type with the type of t and elements equal to (t[index<size_v<T> - 1 - Idx>]...);

Helper type

namespace kumi::result
{
template<product_type T> struct reverse;
template<product_type T>
using reverse_t = typename reverse<T>::type;
}
constexpr auto reverse(T &&t)
Reverse elements of a product type.
Definition reverse.hpp:43

Computes the return type of a call to kumi::reverse

Examples:

Tuple:

#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
auto values = kumi::tuple { 1, 'a', 0.1 };
std::cout << values << "\n";
std::cout << kumi::reverse(values) << "\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 values = kumi::record { "a"_id = 1, "b"_id = 'a', "c"_id = 0.1 };
std::cout << values << "\n";
std::cout << kumi::reverse(values) << "\n";
}
Fixed-size collection of heterogeneous tagged fields, tags are unique.
Definition record.hpp:36