I\'ve found this question, and I\'m completely baffled.
The answer says b is invalid, \"Non-static members can not be used as default arguments.\". That
b
I think this is understandable: g_x and s_x are available at compile time but this (and therefore this->m_x) is not. You can use a trick to use m_x:
int b(int x = -1) { return x == -1 ? m_x + 1 : x + 1; }
(Of course -1 should be illegal input in this case.)