我研究了cppreference.com提供的std::basic_filebuf::seekpos的文档页面,并对以下句子感到困惑:



据我在电脑上看到的,seekpos最终以eback()== gptr()== egptr()结束,即函数清空了区域。这是否意味着获取区域已更新?如果有人可以澄清的话,那将是非常好的。谢谢!

最佳答案

在页面的更下方:



和:



看来这就是你所经历的。

对于“更新”的含义,可以进行解释。该标准在这里非常灵活(请注意缺少明确的后置条件),基本上说“实现可以执行其开展业务所需的任何工作”。

在这种情况下,您的filebuf实现可能会在您查找时清空get区域,然后在下一个underflow()处“填充”它—可以说,两个一致的操作都是“update”,但是说实话,您可以旋转你喜欢的方式。

关于c++ - std::basic_filebuf::seekpos的文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53525238/

10-09 06:02