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:166
- 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>
struct pop_front
{
};
template<kumi::concepts::product_type T> using pop_front_t = typename kumi::result::pop_front<T>::type;
Computes the return type of a call to kumi:pop_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 << 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>
struct pop_back
{
using type = decltype(kumi::pop_back(std::declval<T>()));
};
template<kumi::concepts::product_type T> using pop_back_t = typename kumi::result::pop_back<T>::type;
Computes the return type of a call to kumi:pop_back
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
std::cout << t << "\n";
std::cout << kumi::pop_back(t) << "\n";
}
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
std::cout << r << "\n";
std::cout << kumi::pop_back(r) << "\n";
}