|
Boost : |
From: Jeremy Maitin-Shepard (jbms_at_[hidden])
Date: 2002-12-11 19:06:40
It seems quite clear from the Boost.Compatbility rationale that extensions to
the C++ standard library do not belong in it.
"This library provides workarounds which allow the other Boost libraries to be
used on otherwise non-conforming platforms. We hope that it will be possible to
remove this library at some time in the future as standard library suppliers
become more conforming."
Since the stated purpose of the library is provide compatibility with the
standard, if the above stated purpose is in fact correct, then there is no place
for extensions to the standard library in it, especially considering the note
about the hope to eventually eliminate the library. Boost IS an extension to
the standard library.
In addition, I see no particular advantage in even using compiler-provided
implementations (when available) of extensions when it is the intent for
boost to provide an implementation of that extension.
On a different note, there should be a hash table/hash library in boost with the
same interface as the SGI STL hashtable, hash_map, hash_set, hash_multimap
classes. Although a hash table library with a policy-based addressing scheme
(i.e. separate chaining policy, open addressing (with various probing
algorithms)) might be useful, after some thought I have decided that the added
complexity and more cumbersome interface as well as probable reduced compiler
support would outweigh any advantages, and therefore it would be reasonable to
support only separate chaining. In addition, providing (in separate, optional
header files) hash functions for primitive types and standard library containers
as specializations of a template class (named 'hash,' for example) would be very
useful.
- Jeremy Maitin-Shepard
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk