
From: Thomas Witt <witt@acm.org>
Beman Dawes wrote:
"Thomas Witt" <witt@acm.org> wrote in message news:d58cm5$mso$1@sea.gmane.org...
Hmm, what's the benefit of having symlink_status() and status() ? Wouldn't one function suffice that sets the symlink flag when a symlink is encoutered on the way. I.e.
I considered that briefly, but rejected it because status() on POSIX would then require two calls; one to stat() and one to lstat().
Hmmm .. mildly convincing.
I don't find it convincing. Should such an implementation detail drive what may well become a standardized interface? Besides, when an implementor provides this information, s/he probably has (or can create) useful low level, nonportable APIs available to make this efficient.
There is also a nice simplicity in the current design; the functions always returns a value with one and only one flag set.
In this case the fact that it is a bitmask type seems to be kind of misleading. Isn't the whole point of a bitmask type to be able to have multiple flags set at once?
I agree. What's the point of the bitmask? As described, masking is needed, but since only one value is ever actually returned, what's the point? Equality comparisons are easier than bitmasks.
Neither of those are really killer arguments, so if others think it would be better to have a single status() function, I'd like to hear their arguments.
I am up in the air about it. On the one hand it seems wrong to me to have a suboptimal interface only because posix has one, on the other hand performance might be an issue.
I don't think performance needs to be a factor. -- Rob Stewart stewart@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;