|
Boost : |
From: Beman Dawes (bdawes_at_[hidden])
Date: 2002-03-21 13:09:29
At 03:01 AM 3/21/2002, Dylan Nicholson wrote:
> --- Beman Dawes <bdawes_at_[hidden]> wrote:
>>
>> I understand each of your points above; indeed my first cut looked a
lot
>> like what you are describing. Here is why the header evolved:
>>
>I do accept and see some benefit in the method you've chosen, but the
>"arbritrariness" of the names I guess is what worries me the most. It's
>much harder to think up long descriptive names that accurately capture
the
>intent. create_missing_directories probably stands out for that
>reason - what missing directories? And does it fail if there are
>no directories to create? etc.
I'm not so worried with create_directory/create_missing_directories as
remove/prune and copy.
Two names I can live with.
But with remove/prune, there end up being something like 7 names, and many
of those have several overloads. Minimum 13 signatures in all, and that
doesn't even cover a few of the behavior corner cases.
An alternative would be to have a single name ("remove") with four
signatures (unfiltered, filtered by name, filtered by regex, filtered by
Predicate). All would take an options argument, which would be a bitmask
type (17.3.2.1.2) with the following entries (I haven't tried to pick names
yet):
* OK if !exist(path) [otherwise throw if !exist(path)]
* recurse into subdirectories [otherwise don't recurse]
* error if !is_directory(path), or,
error if !is_file(path),
[otherwise can be either file or directory]
* remove path itself if filter results in is_empty_directory(path)
[otherwise filtered functions on dirs apply to contests only]
Dropping from 7 names to 1, and 13 signatures to 4 is certainly attractive.
Food for thought.
--Beman
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk