Rotates the element of a product type R positions to the left, wrapping around when getting to the beginning.
- Template Parameters
-
- Parameters
-
- Returns
- A product type equivalent to t with elements rotated R positions to the left.
Helper type
namespace kumi::result
{
template<std::
size_t R, product_type T>
struct rotate_left;
template<std::size_t R, product_type T>
}
constexpr auto rotate_left(T &&t)
Rotates the element of a product type R positions to the left, wrapping around when getting to the be...
Definition rotate.hpp:59
Computes the return type of a call to kumi::rotate_left
Example
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
std::cout << values << "\n";
std::cout << kumi::rotate_left<1>(values) << "\n";
std::cout << kumi::rotate_left<3>(values) << "\n";
}
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:29
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
auto values =
kumi::record{
"a"_id=1,
"b"_id=2,
"c"_id=3,
"d"_id=4,
"e"_id=5,
"f"_id=6};
std::cout << values << "\n";
std::cout << kumi::rotate_left<1>(values) << "\n";
std::cout << kumi::rotate_left<3>(values) << "\n";
}
Fixed-size collection of heterogeneous fields necessarily named, names are unique.
Definition record.hpp:29