I have implemented an "incremental mean" (I am posing just the .cpp file)
#include "../hpp/CIncrementalMean.hpp"
IncrementalMean::IncrementalMean() : m_mean(0.0), m_cntr(0) {}
IncrementalMean::~IncrementalMean() {}
void IncrementalMean::addValueToMean(double valIn)
{
m_mean = (m_cntr * m_mean + valIn) / ++m_cntr;
}
int IncrementalMean::getCounter() const
{
return m_cntr;
}
double IncrementalMean::getMean() const
{
return m_mean;
}
And when I build it (gcc4.9 Ubuntu14.04), I get the following warning:
warning: operation on ‘((IncrementalMean*)this)->IncrementalMean::m_cntr’ may be undefined [-Wsequence-point]
I am not sure why it is displayed. Can someone give me an advise? Shall I do
m_mean = (m_cntr * m_mean + valIn) / (m_cntr + 1);
m_cntr++;
instead?
But anyway, can someone explain me the warning?