Creates a tuple of product types, each containing N consecutive elements from t. Chunks starts at 0 and advance by N element each time.
On record types, this function operates on elements as if they were ordered. The considered order is the order of declaration.
- Template Parameters
-
| N | Size of the chunks to generate |
- Parameters
-
| t | the product type from which to extract the chunks |
- Returns
- A tuple of product types, each containing N consecutive elements of t
- Note
- Chunks behaves like paving tiles: each inner product_type is a tile over t starting at index chunk_size * tile_number + 1. The last chunk will be smaller if the size of the product_type is not a multiple of the chunk size.
Helper type
namespace kumi::result
{
template<std::
size_t N, product_type T>
struct chunks;
template<std::size_t N, product_type T>
}
constexpr auto chunks(T &&t)
Creates a tuple of product types, each containing N consecutive elements from t. Chunks starts at 0 a...
Definition tiler.hpp:94
Computes the return type of a call to kumi::chunks
Examples:
Tuple:
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
auto t =
kumi::tuple{1,
'y', 3.f,
short{55}, -8, 66.,
"Pete"};
std::cout << " Standard Chunks " << "\n";
std::cout << c << "\n";
{
get<0>(tile)++;
},c);
std::cout << t << "\n";
std::cout << " Chunks with references " << "\n";
std::cout << c2 << "\n";
{
get<0>(tile)++;
},c2);
std::cout << t << "\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 t =
kumi::record{
"a"_id = 1,
"b"_id =
'y',
"c"_id = 3.f,
"d"_id =
short{55}
, "e"_id = -8, "f"_id = 66., "g"_id = "Pete"};
std::cout << " Standard Chunks " << "\n";
std::cout << c << "\n";
{
},c);
std::cout << t << "\n";
std::cout << " Chunks with references " << "\n";
std::cout << c2 << "\n";
{
},c2);
std::cout << t << "\n";
}
constexpr auto values_of(T &&t) noexcept
Extracts the values of the fields of a product type.
Definition meta.hpp:54
decltype(auto) constexpr get(record< Ts... > &r) noexcept
Extracts the Ith field from a kumi::record.
Definition record.hpp:604
Fixed-size collection of heterogeneous tagged fields, tags are unique.
Definition record.hpp:36