Callable object computing the product of all elements.
On record types, this function operates on the underlying values, not on the fields themselves.
- Note
- For associative operations, this produces the same result as a left or right fold, but have different intermediate evaluation order.
inline constexpr
#include <kumi/algorithm/reduce.hpp>
template<product_type T>
constexpr auto prod(T && t);
constexpr prod_t prod
Callable object computing the product of all elements.
Definition reduce.hpp:437
template<product_type T, typename V>
constexpr auto prod(T && t, V init);
- t: Product Type to operate on
- init: Optional initial value of the reduction.
The result of the computation of `get<0>(t) * ... * get<N-1>(t) * init`
namespace kumi::result
{
template<product_type T,
typename Value>
struct prod;
template<product_type T, typename Value>
}
Computes the return type of a call to kumi::prod
#include <kumi/kumi.hpp>
#include <iostream>
int main()
{
}
Fixed-size collection of heterogeneous values.
Definition tuple.hpp:33
#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'};
}
Fixed-size collection of heterogeneous tagged fields, tags are unique.
Definition record.hpp:36