KUMI v5.0.0
Gorgeous Garnet
Loading...
Searching...
No Matches

◆ min_flat

min_flat_t kumi::min_flat {}
inlineconstexprnodiscardnoexcept

Callable object computing the minimum value of applications of f to all elements of kumi::flatten_all(t).

Header file

#include <kumi/algorithm/minmax.hpp>

Call Signature

template<product_type T, typename Function>
constexpr auto min_flat(T && t, Function f) noexcept;
constexpr min_flat_t min_flat
Callable object computing the minimum value of applications of f to all elements of kumi::flatten_all...
Definition minmax.hpp:348

Parameters

  • t: Product Type to inspect
  • f: Unary callable object to be invoked

Return value

  • The minimum value of f over all elements of a flattened version of t

Helper type

template<typename T, typename F> using min_flat_t = decltype(kumi::min_flat(std::declval<T>(), std::declval<F>()));
template<typename T, typename F> struct min_flat
{
using type = kumi::result::min_flat_t<T, F>;
};

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

Examples

  • Tuple
    #include <kumi/kumi.hpp>
    #include <iostream>
    int main()
    {
    auto f0 = kumi::tuple {2., kumi::tuple {1., 'u', 3. }, 3.f };
    std::cout << kumi::min_flat (f0 , [](auto m) { return sizeof(m); }) << "\n";
    }
    Fixed-size collection of heterogeneous values.
    Definition tuple.hpp:35
  • Record
    #include <kumi/kumi.hpp>
    #include <iostream>
    int main()
    {
    using namespace kumi::literals;
    auto f0 = kumi::record {"a"_id =2.,"b"_id =
    kumi::record {"c"_id =1., "d"_id ='u', "e"_id =3. }, "f"_id =3.f };
    std::cout << kumi::min_flat (f0 , [](auto m) { return sizeof(m); }) << "\n";
    }
    Fixed-size collection of heterogeneous tagged fields, tags are unique.
    Definition record.hpp:36