Название в значительной степени говорит обо всем этом.
Я реализую свой собственный класс streambuf, и мне интересно, что думал Комитет, когда они решили включить как std::streambuf::seekpos(), так и std::streambuf::seekoff() (и аналогично для связанных pubseekpos() и pubseekoff()).
Мне кажется, что seekpos(x) должен иметь тот же эффект, что и seekoff(x, std::ios::beg) во всех обстоятельствах, которые я могу себе представить. Но, возможно, мое воображение недостаточно. Итак, почему вы хотите иметь оба, когда seekpos полностью добавляется seekoff? Или, по крайней мере, почему бы вам не сделать реализацию по умолчанию первого, просто вызвать последний?
Если ответ "потому что это то, что сделал STL" или подобное, тогда предположим, что я спрашиваю о обосновании STL или подобного.
(я понимаю, что первым аргументом seekpos является streampos, а первый аргумент seekoff - это streamoff. Но обратите внимание, что 27.4.3.2 [lib.fpos.operations] требует, чтобы позиции потока быть конвертируемым в потоки смещения и обратно, поэтому я не думаю, что это ответ.)