Boost logo

Boost :

From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2004-10-03 07:45:24


Hi all.

In the operator/concept traits library (now renamed Concept Traits Library)
that I posted about a while ago, there were, as Tobias Schwinger pointed out
in a mail, several filenames that were longer than then Boost 31 character
maximum. I was aware of this, but didn't know how stringent this requirement
was (7 of 37 standard concept traits have more than 31 characters, the
maximum being 37 characters). However, as I understand, it's not just
platforms, but also things like media (such as CDs) that may impose this
limit, making it more serious.

The library will be put in a CVS at the http://www.neoscientists.org/
server, and we're not sure how to deal with the maximum filename length. The
current directory structure is, e.g.:

#include <boost/concept_traits/std/is_default_constructible.hpp>
#include <boost/concept_traits/std/is_random_access_container.hpp>
#include <boost/concept_traits/std/is_random_access_iterator.hpp>
#include <boost/concept_traits/std/is_generator.hpp>

Tobias suggested the following (the "model" part is still not decided, and
may be considered separately):

#include <boost/concept_traits/model/std/constructbility/default.hpp>
#include <boost/concept_traits/model/std/container/random_access.hpp>
#include <boost/concept_traits/model/std/iterator/random_access.hpp>
#include <boost/concept_traits/model/std/function/generator.hpp>

The traits would still retain their names, so
<boost/concept_traits/model/std/iterator/random_access.hpp> would have
is_random_access_iterator<T>.

To consider the issue, we looked at Boost's type_traits, where all the
traits are in the same directory, as well as libraries like MPL, where it
appears to move to <boost/mpl/arithmetic/plus.hpp> (from
<boost/mpl/plus.hpp>) - at least, the "arithmetic" directory is there. The
same goes for PP-lib.

However, in the case of CTL, the components would then have a different name
than the source file, so I felt like getting some more opinions on the
subject.

What do you think?

Opinions on whether or not "model" should be included in the path is also
welcome. Bear in mind in that case that the "concept_traits" directory will
also contain the "operator" (for the operator traits) and "utility" (for
components to define new traits), so "model" might more clearly separate out
that these are the concept traits, themselves.

Also, what is the opinion on singular/plural? Boost's type_traits is plural
(and this is quite similar to them), but there are otherwise mostly singular
names in Boost (and the library requirements states that libraries should
usually be singular).

Regards,

Terje


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