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

Reply via email to