Callable object constructing a product type by adding a value v at the beginning of t.
Callable object constructing a product type by adding a value v at the end of t.
On record types, this function operates on elements as if they were ordered. The considered order is the order of declaration.
#include <kumi/algorithm/push_pop.hpp>
template<product_type T, typename V>
constexpr push_front_t push_front
Callable object constructing a product type by adding a value v at the beginning of t.
Definition push_pop.hpp:115
- t: Base product type
- v: Value to insert in front of t
- A product type composed of v followed by all elements of t in order.
template<kumi::concepts::product_type T,
typename V>
struct push_front
{
};
template<kumi::concepts::product_type T, typename V>
using push_front_t = typename kumi::result::push_front<T, V>::type;
Computes the return type of a call to kumi:push_front
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
std::cout << t << "\n";
}
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:33
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
std::cout << t << "\n";
}
Fixed-size collection of heterogeneous tagged fields, tags are unique.
Definition record.hpp:36
On record types, this function operates on elements as if they were ordered. The considered order is the order of declaration.
#include <kumi/algorithm/push_pop.hpp>
template<product_type T, typename V>
constexpr auto push_back(T && t, V && v);
- t: Base product type
- v: Value to insert at the end of t
A product type composed of all elements of `t` in order followed by `v`.
template<kumi::concepts::product_type T,
typename V>
struct push_back
{
using type = decltype(kumi::push_back(std::declval<T>(), std::declval<V>()));
};
template<kumi::concepts::product_type T, typename V>
using push_back_t = typename kumi::result::push_back<T, V>::type;
Computes the return type of a call to kumi:push_back
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
std::cout << kumi::push_back(
kumi::tuple{}, 63.21) <<
"\n";
std::cout << t << "\n";
std::cout << kumi::push_back(t, 'Z') << "\n";
}
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
std::cout << kumi::push_back(
kumi::record{},
"a"_id = 63.21) <<
"\n";
std::cout << t << "\n";
std::cout << kumi::push_back(t, "d"_id = 'Z') << "\n";
}