Ho scoperto di recente l'eccellente boost di librerie :: accumulatori e vorrei utilizzarlo per sostituire parte del mio codice che accumula statistiche.Sommando due istanze boost :: accumulator_set
Una cosa che non riesco a trovare nella documentazione è la capacità di sommare due set di accumulatori, come in operatore + =
Esempio:
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); }
};
Come posso ottenere questo utilizzando l'API disponibili? Non so se questo può essere implementato per tutti i tipi di accumulatori nella libreria (forse non per coda), ma sicuramente può essere per cose importanti, come conteggio, somma, media, momento, covarianza, ecc.
Si dimentica anche di 'return * this;', anche se questo non è correlato. – Matt
@Matt, accanto al punto, ma vale comunque la pena di essere sistemato ... – killogre