From: Jonathan Wakely (cow_at_[hidden])
Date: 2005-05-06 08:08:03
On Fri, May 06, 2005 at 03:46:44PM +0300, Peter Dimov wrote:
> Beman Dawes wrote:
> >On a POSIX system that would work well. But what happens on a
> >non-POSIX system? The E* macros won't be defined in <cerrno>. How
> >will the user get access to them? Are you suggesting they be defined
> >in one of the filesystem headers? I don't see how that would work.
> I am suggesting that they shall be defined in <cerrno>.
> If this doesn't seem acceptable to you, I am not opposed to the filesystem
> library defining its own aliases of all applicable E* constants. If this is
> the case, I am suggesting that there shall be an 1:1 mapping of aliases to
> E* names and that the aliases shall have the same value as the
> corresponding E* names.
That's what I'd assumed you meant, so that if you're on a POSIX platform
and are familiar with the E* symbolic names you can compare the
Boost.Filesystem error code to ENOENT etc.
If you don't have the E* names defined, or don't want to use them, you
can use the corresponding Boost.Filesystem constant.
Either way, the value's the same, so it's purely a matter of style.
This would be consistent with the equality of std::char_traits<char>::eof()
and EOF, and between std::numeric_limits<int>::max() and INT_MAX.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk