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

◆ prod() [2/2]

template<concepts::product_type T, typename Value>
auto kumi::prod ( T && t,
Value init )
inlinenodiscardconstexpr

Computes the product of all elements.

Parameters
tProduct type to operate on
initInitial value of the product
Returns
The value of get<0>(t) * ... * get<N-1>(t) * init

Helper type

namespace kumi::result
{
template<product_type T, typename Value> struct prod;
template<product_type T, typename Value>
using prod_t = typename prod<T,Value>::type;
}
constexpr auto prod(T &&t, Value init)
Computes the product of all elements.
Definition reduce.hpp:295

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

Examples:

#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
auto t = kumi::tuple{2.,5,short{3},'\4'};
std::cout << kumi::prod(t, 10) << "\n";
std::cout << kumi::prod(t) << "\n";
}
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:29
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
using namespace kumi::literals;
auto r = kumi::record{"a"_id = 2.,"b"_id = 5,"c"_id = short{3},"d"_id = '\4'};
std::cout << kumi::prod(r, 10) << "\n";
std::cout << kumi::prod(r) << "\n";
}
Fixed-size collection of heterogeneous fields necessarily named, names are unique.
Definition record.hpp:29