Como usar uma função não const de uma função const

struct A
{
    int i=0;
	void foo() const
    {
      const_cast<A&>(*this).func();
    }
  	void func()
    {
      i++;
    }
};
Trakevital