Boost logo

Boost :

From: dizzy (dizzy_at_[hidden])
Date: 2008-05-20 04:52:28


On Monday 19 May 2008 23:37:25 David Abrahams wrote:
> I was just reviewing the filesystem docs and came across "leaf()". I'm
> sure this isn't the first time I've seen it, but this time I picked up a
> little semantic dissonance. Normally we think of "leaf" in the context
> of a tree as being a thing with no children.

Correct.

> An interior node like a
> directory that has files or other directories in it is usually not
> called a "leaf." I wonder if this is the best possible name?

But it's not the directory itself (identified by some path object) that is a
leaf, it is the path component returned by leaf() that is the leaf of a path.
Because I assume you talk about basic_path::leaf(). For any given path, the
path components form the path tree and the last component is the leaf of that
tree respecting the semantics you described. It's not a leaf node in another
context, but there is no such context implied since we are talking about
basic_path::leaf(), ie a path leaf not something else's leaf.

> Is there a precedent we can draw on in some other language/library? In
> python, it's os.path.basename(p). Perl, php, and the posix basename
> command seem to do something similar.

"basename" could work too but I never had any confusion in my head of what
leaf() means for a given path object.

-- 
Mihai RUSU					Email: dizzy_at_[hidden]
			"Linux is obsolete" -- AST

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk