// seek to -std::streampos{sizeof ah} bytes before the current input position
foo.seekg(-std::streampos{sizeof ah}, std::ios::cur);
fout.tellg() is a std::fpos<std::mbstate_t>, not an integral type.
It supplies sum and difference operators (member functions) that accept a std::streamoff, which is some signed integral type. The ambiguity is between that operator-() and the built-in binary operator-.
You can use the two-argument version of seekg(). Be careful: sizeof returns an unsigned number; negating it will yield a large positive value.