On Tuesday, 9 June 2015 at 22:05:27 UTC, Jonathan M Davis wrote:
[snip]
I think RedBlackTree isn't a very good name though. It's long
and is an implementation detail.
The decision was previously made to name the containers after
what they actually are rather than what they're used for, and I
still agree with that decision. However, I do think that we
should have wrappers and aliases where appropriate (e.g.
SortedMap could be an alias to RedBlackTree, and SortedSet
could be a wrapper around RedBlackTree) in order to provide
names which are based on what you use them for (rather than
what they are) as folks frequently expectA nd in some cases
(like SortedSet), it's pretty much necessary unless you have a
lot of code duplication, since the same data structure is used
for multiple container types, but the API needs to be slightly
different to be truly user-friendly.
I suppose an alias would be fine. I can't think of any other
standard library that uses the actual data structures as the
names. Doing it that way exclusively would be unfriendly to
newcomers and downright hostile to people who never have (or have
yet to) study computer science.
Thinking about it more I actually like the idea now of naming
them by the data structure and using aliases. That would also
open the possibility of relegating more sophisticated template
argument container configuration options (bucket sizes,
sparse/dense, etc.) to the data structure to which they apply and
letting the container concept aliases be a sane default.