Boost logo

Boost :

From: Vesa Karvonen (vesa.karvonen_at_[hidden])
Date: 2001-07-24 16:54:53

From: "Mark Rodgers" <mark.rodgers_at_[hidden]>
> IMHO anything that affects the external interface could be a requirement.

I would be a bit more specific and talk about "programmatically accessible
interface", but I think that the basic intent is the same. Specifically, I
would not place requirements on anything that is not programmatically
accessible. The programmatically accessible interface consists of anything
that can be named and/or depended upon in client code, without violating the
public contract of the library (e.g. using something in the detail namespace).

For example, it should be perfectly acceptable, but not recommended, to use
names in a library specific detail namespace (with the exception that names
reserved by C++ should not be used), that do not pass the requirements for
names in a programmatically accessible namespaces.

> Thus we really do care about such things as
> - How files are named and what directories they go in.
> - How classes are named.
> - How public and protected members are named.

I would distinguish between "naming":
[- language (I assume use of English is mandatory)]
- use of nouns, verbs, adjectives, etc...
- set of names to prefer (type, value, code, for_each, accumulate, ...)
- set of names to avoid (object, handler, ...)
- use of abbreviations
- use of get_/set_/is_,etc... on accessors/mutators/states,etc...
- use of other pre/post-fixes (m_, _type, const_, ...)
- ...
and "decoration":
- upper/lower/mixed case
- use of underscores
- ...

I think that decoration should be in the requirements, but I'm not so sure
about which naming issues should be in the requirements, if any. Perhaps some
of the naming issues could be separated into some class between decoration and

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