
On Wed, May 04, 2005 at 06:18:46PM +0300, Peter Dimov wrote:
Iain K. Hanson wrote:
I agree that it is time to re-visit these issues and they are going to apply to more than just the Filesystem library. I don't believe The E* names are portable to non-posix systems which includes ( at least part of ) Windows.
Strictly speaking, E* isn't directly portable to anything. Every system provides a mapping from its native error codes to E*. This is exactly what the filesystem library does at the moment, except that it maps to its own set.
(The GetLastError to E* mapping that the MSVC runtime does is in crt/src/dosmap.c, but it looks like it can be improved.)
I don't see a reason for us to reinvent the wheel yet again when the work of coming up with a portable set of error codes is already done (by a standard committee, no less).
I missed this the 1st time round but POSIX does not define a set of error codes but just a set of names. That are not portable because not everyone has bought into POSIX. I'd rather have a consistant set of *readable* C++ names forn all C++ platforms defined by the C++ standards committee that could be mapped to POSIX of Native error names. /ikh