Niedawno odkryłem doskonałe wzmocnienie biblioteki :: akumulatory i chciałbym użyć jej do zastąpienia części mojego kodu, który gromadzi statystyki.Podsumowując dwa przykłady boost :: accumulator_set
Jedno nie mogę znaleźć w dokumentacji jest umiejętność Podsumowując dwa zestawy akumulatorowe, jak w operatora + =
Przykład:
using namespace boost::accumulators;
typedef accumulator_set<double, features<tag::variance> > AccumSet;
class Foo {
AccumSet acc;
public:
Foo& operator+=(const Foo& that) {
this->acc += that.acc; // error! no such operator
return *this;
}
double GetVariance() { return variance(acc); }
};
W jaki sposób można to osiągnąć za pomocą dostępnego API? Nie wiem, czy można to zaimplementować dla wszystkich rodzajów akumulatorów w bibliotece (może nie dla ogona), ale z pewnością może być dla ważnych rzeczy, takich jak liczenie, suma, średnia, moment, kowariancja, itp.
Zapominasz też o "zwrócić * to;", chociaż nie ma to związku. – Matt
@Matt, obok punktu, ale nadal warto naprawić ... – killogre