
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>
I would keep the "is_" part and try to keep the general purpose traits intact:
#include <boost/concept_traits/model/std/is_default_constructible.hpp> #include <boost/concept_traits/model/std/container/is_random_access.hpp> #include <boost/concept_traits/model/std/iterator/is_random_access.hpp> #include <boost/concept_traits/model/std/function/is_generator.hpp>
This silly filename length limit. :) Maybe if we wait long enough, it will go away? ;) This was only halfway a joke: 1. While the ISO 9660 CD-ROM standard has a maximum of 31 characters for filenames, the Joliet extension supports up to 64 characters. 2. While MacOS 9 has the same maximum as ISO 9660, MaxOS X supports up to 255 characters. Some problems _do_ go away "by themselves"... ;)
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.
Actually, it's the other way around -- they *used* to reside inside the directory, but at some point were moved to the top level. There are pros and cons to both ways.
Ok. Thanks for the update on that.
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)
Understand this one, ...
and "utility" (for components to define new traits),
... but not this.
so "model" might more clearly separate out that these are the concept traits, themselves.
IMO just "std" is enough.
Also, what is the opinion on singular/plural? Boost's type_traits is
Maybe it's too vague. 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).
IMO this one should be plural ("concept_traits").
Agreed. Thanks for your comments. Regards, Terje