573. C++0x file positioning should handle modern file sizes

Section: 31.5.3 [fpos] Status: NAD Submitter: Beman Dawes Opened: 2006-04-12 Last modified: 2016-01-28 10:19:27 UTC

Priority: Not Prioritized

View all other issues in [fpos].

View all issues with NAD status.


There are two deficiencies related to file sizes:

  1. It doesn't appear that the Standard Library is specified in a way that handles modern file sizes, which are often too large to be represented by an unsigned long.
  2. The std::fpos class does not currently have the ability to set/get file positions.

The Dinkumware implementation of the Standard Library as shipped with the Microsoft compiler copes with these issues by:

  1. Defining fpos_t be long long, which is large enough to represent any file position likely in the foreseeable future.
  2. Adding member functions to class fpos. For example,
    fpos_t seekpos() const;

Because there are so many types relating to file positions and offsets (fpos_t, fpos, pos_type, off_type, streamoff, streamsize, streampos, wstreampos, and perhaps more), it is difficult to know if the Dinkumware extensions are sufficient. But they seem a useful starting place for discussions, and they do represent existing practice.

[ Kona (2007): We need a paper. It would be nice if someone proposed clarifications to the definitions of pos_type and off_type. Currently these definitions are horrible. Proposed Disposition: Open ]

[ 2009-07 Frankfurt ]

This is the subject of paper N2926.

If we choose to take any action, we will move the paper, so the issue can be closed.

Move to NAD.

Proposed resolution: