On Friday, October 18, 2013 11:04:25 bearophile wrote:
> simendsjo:
> > See topic. Why is this not allowed? The function in question is
> > not virtual.
> > 
> > struct S {
> > 
> >     void someFunction() const {}
> >     const invariant() { someFunction(); }
> > 
> > }
> > void main() {
> > 
> >     S s;
> > 
> > }
> 
> It being not virtual is not important. In what cases is
> invariant() called, simendsjo? I sense an infinite loop.

Yeah, it's probably because someFunction calls the invariant before and after 
it's called. If you want to call a member function from an invariant, it 
should be static, or it should be a free function.

- Jonathan M Davis

Reply via email to