It's quite frustrating that code below works:

std::stringstream s{"123"};
std::cout << s.tellg();

But code below doesn't:

std::stringstream s{"123"};
std::println("{}", s.tellg());

The reason lies in that `std::fpos` can be implicitly converted to `std::streamoff`, which is one of the signed integer types (and overloaded operator<< will match it). But it doesn't support `std::formatter` directly, so we have to code like:

std::println("{}", s.tellg() - std::streampos{});
// or
std::println("{}", (std::streamoff)s.tellg());

I'd like to post a small proposal for adding std::formatter for it :).