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

◆ pop_back()

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

Remove the last (if any) element of a kumi::product_type.

Parameters
tBase product type
Returns
A product type composed of all elements of t except its last. 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_back;
template<product_type T>
using pop_back_t = typename pop_back<T>::type;
}
constexpr auto pop_back(T &&t)
Remove the last (if any) element of a kumi::product_type.
Definition push_pop.hpp:158

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

Examples:

Tuple:

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