KUMI v3.1.0
Exquisite Epidote
Loading...
Searching...
No Matches

◆ pop_front()

template<concepts::product_type T>
auto kumi::pop_front ( T && t)
inlinenodiscardconstexpr

Remove the first (if any) element of t.

Parameters
tBase product type
Returns
A product type composed of all elements of t except its first. Has no effect on empty product types.

On record types, this function operates on elements as if they were ordered. The considered order is the order of declaration.

Helper type

namespace kumi::result
{
template<product_type T> struct pop_front;
template<product_type T>
using pop_front_t = typename pop_front<T>::type;
}
constexpr auto pop_front(T &&t)
Remove the first (if any) element of t.
Definition push_pop.hpp:82

Computes the return type of a call to kumi::pop_front

Examples:

Tuple:

#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
std::cout << kumi::pop_front( kumi::tuple{} ) << "\n";
kumi::tuple t{1,2.,3.4f};
std::cout << t << "\n";
std::cout << kumi::pop_front(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 << kumi::pop_front( kumi::record{} ) << "\n";
kumi::record r{"a"_id = 1,"b"_id = 2.,"c"_id = 3.4f};
std::cout << r << "\n";
std::cout << kumi::pop_front(r) << "\n";
}
Fixed-size collection of heterogeneous tagged fields, tags are unique.
Definition record.hpp:36