Boost logo

Boost :

From: Stewart, Robert (stewart_at_[hidden])
Date: 2002-03-21 14:26:37

From: Beman Dawes [mailto:bdawes_at_[hidden]]
> At 03:01 AM 3/21/2002, Dylan Nicholson wrote:
> 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 ( 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,

This should be handled by a predicate.

> error if !is_file(path),

This should be handled by a predicate.

> * remove path itself if filter results in
> is_empty_directory(path)

I think this is reasonably handled with other means. For example, never
remove the directory itself; just its contents. Or, always try to remove
the directory and throw an exception. Finally, you could add an overload
that handles this case separately.

> Dropping from 7 names to 1, and 13 signatures to 4 is
> certainly attractive.


I'll suggest names for the options I left: must_exist, recurse (or
recurse_directories). That was easy since I only kept two options!

Susquehanna International Group, LLP

Boost list run by bdawes at, gregod at, cpdaniel at, john at