Range-v3
Range algorithms, views, and actions for the Standard Library
inner_product.hpp File Reference

Classes

struct  ranges::inner_product_fn
 

Functions

 ranges::CPP_PP_CAT (CPP_PP_DEF_, template(typename I1, typename I2, typename T, typename BOp1=plus, typename BOp2=multiplies, typename P1=identity, typename P2=identity)) META_CONCEPT CPP_PP_CAT(CPP_PP_DEF_
 

Variables

constexpr inner_product_fn ranges::inner_product {}
 
concept ranges::inner_product_constraints = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( input_iterator<I1> && input_iterator<I2> && invocable<P1& )( input_iterator<I1> && input_iterator<I2> && invocable<P1&, iter_value_t<I1>> && invocable<P2&, iter_value_t<I2>> && invocable< BOp2&, invoke_result_t<P1&, iter_value_t<I1>>, invoke_result_t<P2&, iter_value_t<I2>>> && invocable< BOp1&, T, invoke_result_t< BOp2&, invoke_result_t<P1&, iter_value_t<I1>>, invoke_result_t<P2&, iter_value_t<I2>>>> && assignable_from< T&, invoke_result_t< BOp1&, T, invoke_result_t< BOp2&, invoke_result_t<P1&, iter_value_t<I1>>, invoke_result_t<P2&, iter_value_t<I2>>>>> )