Thomas Witt <[EMAIL PROTECTED]> writes: >> I assume you mean the portable representation of the native paths: >> "/C/C/foo" >> "/" + *current_path().begin() + "/C/foo" (**) >> "/C/foo" >> (**) There is no way to represent "The foo subdirectory of the C >> directory of the current drive" portably, because it isn't a portable >> concept. > > I would argue that different drives are the non-portable concept.
Of course. The higher level concept represented by the windows path "\C\foo" depends on the concept of different drives and is therefore non-portable as well. >> Therefore, we could pick other sensible answers for the >> middle path, e.g.: >> 1. Exception is thrown >> 2. "./C/foo" >> 3. "/*/C/foo" where '*' is some character not normally allowed >> in portable paths. >> > > I think your proposal is clearly inferior to what we currently > have. With your solution the set of valid portable paths is dependent > on the set of valid roots on a given platform. How so? Someone can mount a Z: drive through software on Windows as easily as they can add a /Z directory on Unix. There's nothing in the path specification that says paths have to exist in order to be valid. > I.e. all portable(syntax) paths starting with a slash are > essentially non-portable. Not in any sense that's more fundamental than the platform-specific differences in allowable file and directory names. -- Dave Abrahams Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost