16#ifndef RANS_INTERNAL_CONTAINERS_HISTOGRAMCONCEPT_H_
17#define RANS_INTERNAL_CONTAINERS_HISTOGRAMCONCEPT_H_
26template <
typename source_T,
typename value_T,
typename difference_T,
class derived_T>
37 template <
typename source_IT>
40 static_assert(utils::isCompatibleIter_v<source_type, source_IT>);
43 return static_cast<derived_T&
>(*this);
45 return static_cast<derived_T*
>(
this)->addSamplesImpl(begin,
end);
54 template <
typename freq_IT>
57 static_assert(utils::isCompatibleIter_v<value_type, freq_IT>);
60 return static_cast<derived_T&
>(*this);
62 return static_cast<derived_T*
>(
this)->addFrequenciesImpl(begin,
end,
offset);
79 template <
typename freq_IT>
82 static_assert(utils::isIntegralIter_v<freq_IT>);
common helper classes and functions
derived_T & addFrequencies(gsl::span< const value_type > frequencies, difference_type offset)
derived_T & addFrequencies(freq_IT begin, freq_IT end, difference_type offset)
derived_T & addSamples(source_IT begin, source_IT end)
derived_T & addSamples(gsl::span< const source_type > samples)
HistogramConcept()=default
derived_T & operator+(derived_T &other)
HistogramConcept(freq_IT begin, freq_IT end, difference_type offset)
difference_T difference_type
VectorOfTObjectPtrs other