2661. [filesys.ts] Surprising equivalent() behavior if neither file exists

Section: 99 [filesys.ts::fs.filesystem.synopsis] Status: NAD Submitter: Beman Dawes Opened: 2014-04-12 Last modified: 2016-08-11

Priority: Not Prioritized

View all other issues in [filesys.ts::fs.filesystem.synopsis].

View all issues with NAD status.

Discussion:

Addresses: filesys.ts

bool equivalent(const path& p1, const path& p2); has always thrown a exception if neither file exists, with rationale that if they don't exist, it isn't possible to tell if two paths are equivalent. Dave Abrahams has reported that this is counter-intuitive and hard to teach.

An alternative if neither path exists would be to return true if they are lexically equal (operator==), otherwise return false.

This was not a national body comment, and Dave is the only one I can recall ever complaining about the current behavior. On the other hand, any complaint from Dave deserves serious consideration.

[17 Jun 2014 Rapperswil LWG considers this NAD. Mixing lexical and existence based behavior is not desirable.]

Proposed resolution: