
At 08:45 AM 10/25/2004, Peter Dimov wrote:
Beman Dawes wrote:
At 01:10 PM 10/22/2004, Miro Jurisic wrote:
boost::fs, as far as I understand it, ran into the problem that it was impossible to sidestep the invariant.
No, rather than the error check was on by default. Some people want it off as the default.
I interpret it a little differently: the "error" check provided no value to users;
That's true for some users, but not all users.
in fact, it "provided" a negative value, which is why most prefer "off by default".
provide value to users, just that this particular check is a net loss.
By saying that "some people want it off as default" you are discounting
Only for the users who don't want to perform the check. For those that do want the check, it has a positive value. This in itself does not prove that all possible portability checks do not the
results of the experiment, attributing them to personal preference. ;-)
You could attribute the preference to the degree of portability required by the user's application's but I think it is more than that. Some people would rather be safe by default, while others would rather error checks only be applied if explicitly invoked. That seems like a personal preference to me. For Unicode strings, it is possible to provide an const_iterator interface which both guarantees the "valid Unicode" invariant and allows construction from character streams. That's the important point, if I understand your postings correctly. And maintenance of the invariant seems more than just a personal preference; it is a stronger design. So it is a stronger argument than the filesystem case. --Beman