diff --git a/include/gul17/statistics.h b/include/gul17/statistics.h index 493a061..0dcff4d 100644 --- a/include/gul17/statistics.h +++ b/include/gul17/statistics.h @@ -160,8 +160,8 @@ class StandardDeviationMean { template ())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto mean(ContainerT const& container, Accessor accessor = ElementAccessor()) -> ResultT @@ -198,8 +198,8 @@ auto mean(ContainerT const& container, Accessor accessor = ElementAccessor())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto rms(ContainerT const& container, Accessor accessor = ElementAccessor()) -> ResultT @@ -239,8 +239,8 @@ auto rms(ContainerT const& container, Accessor accessor = ElementAccessor())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto median(ContainerT const& container, Accessor accessor = ElementAccessor()) -> ResultT @@ -307,8 +307,8 @@ auto median(ContainerT const& container, Accessor accessor = ElementAccessor())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto maximum(ContainerT const& container, Accessor accessor = ElementAccessor()) -> DataT @@ -361,8 +361,8 @@ auto maximum(ContainerT const& container, Accessor accessor = ElementAccessor())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto minimum(ContainerT const& container, Accessor accessor = ElementAccessor()) -> DataT @@ -420,8 +420,8 @@ auto minimum(ContainerT const& container, Accessor accessor = ElementAccessor())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto min_max(ContainerT const& container, Accessor accessor = ElementAccessor()) -> MinMax @@ -468,8 +468,8 @@ auto min_max(ContainerT const& container, Accessor accessor = ElementAccessor())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto remove_outliers(ContainerT&& cont, std::size_t outliers, @@ -492,8 +492,8 @@ auto remove_outliers(ContainerT&& cont, std::size_t outliers, */ template ())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto remove_outliers(ContainerT const& cont, std::size_t outliers, @@ -545,8 +545,8 @@ auto remove_outliers(ContainerT const& cont, std::size_t outliers, template ())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename = std::enable_if_t::value> > auto standard_deviation(ContainerT const& container, Accessor accessor = ElementAccessor()) -> StandardDeviationMean @@ -598,8 +598,8 @@ auto standard_deviation(ContainerT const& container, Accessor accessor = Element template ())(ElementT)>(*)(ElementT const&), - typename DataT = typename std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = typename std::decay_t>, typename OpClosure, typename = std::enable_if_t::value> > @@ -666,8 +666,8 @@ namespace { template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto mean(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> ResultT { @@ -686,8 +686,8 @@ auto mean(IteratorT const& begin, IteratorT const& end, template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto rms(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> ResultT { @@ -706,8 +706,8 @@ auto rms(IteratorT const& begin, IteratorT const& end, template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto median(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> ResultT { @@ -725,8 +725,8 @@ auto median(IteratorT const& begin, IteratorT const& end, */ template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto maximum(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> DataT { @@ -744,8 +744,8 @@ template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto minimum(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> DataT { @@ -763,8 +763,8 @@ template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto min_max(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> MinMax { @@ -784,8 +784,8 @@ auto min_max(IteratorT const& begin, IteratorT const& end, */ template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto remove_outliers(IteratorT const& begin, IteratorT const& end, std::size_t outliers, Accessor accessor = ElementAccessor()) -> std::vector { @@ -805,8 +805,8 @@ auto remove_outliers(IteratorT const& begin, IteratorT const& end, template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>> + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>> auto standard_deviation(IteratorT const& begin, IteratorT const& end, Accessor accessor = ElementAccessor()) -> StandardDeviationMean { @@ -827,8 +827,8 @@ auto standard_deviation(IteratorT const& begin, IteratorT const& end, template ())>, - typename Accessor = std::result_of_t())(ElementT)>(*)(ElementT const&), - typename DataT = std::decay_t>, + typename Accessor = std::invoke_result_t()), ElementT>(*)(ElementT const&), + typename DataT = std::decay_t>, typename OpClosure> auto accumulate(IteratorT const& begin, IteratorT const& end, OpClosure op, Accessor accessor = ElementAccessor()) -> ResultT