Callable object removing the first (if any) element of t.
Callable object removing the last(if any) element 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>
constexpr pop_front_t pop_front
Callable object removing the first (if any) element of t.
Definition push_pop.hpp:173
- A product type composed of all elements of t except its first. Has no effect on empty product types.
template<kumi::concepts::product_type T>
using pop_front_t =
decltype(
kumi::pop_front(std::declval<T>()));
template<kumi::concepts::product_type T> struct pop_front
{
using type = kumi::result::pop_front_t<T>;
};
Computes the return type of a call to kumi:pop_front
- Tuple
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
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;
std::cout << r << "\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 pop_back(T && t, V && v);
A product type composed of all elements of `t` except its last. Has no effect on empty product types.
template<kumi::concepts::product_type T> using pop_back_t = decltype(kumi::pop_back(std::declval<T>()));
template<kumi::concepts::product_type T> struct pop_back
{
using type = kumi::result::pop_back_t<T>;
};
Computes the return type of a call to kumi:pop_back
- Tuple
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
std::cout << t << "\n";
std::cout << kumi::pop_back(t) << "\n";
}
- Record
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
std::cout << r << "\n";
std::cout << kumi::pop_back(r) << "\n";
}