Boost logo

Boost :

From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2006-04-12 13:09:00


It possible that I just missing something and it was already discussed. But
I find the terms used by the library misleading and/or incorrectly used. The
library present different views on the same data. Each view is defined by
notion of "Index". My understanding if term index is something close to the
index at the end of the book. The thing is modeled here I would rather
called an "Order".
   Even more importantly is that I feel the these concepts are kind of mixed
into one in library design. I understand that we want multiple Orders for
the same data. Each order define a view to the container. Each view present
iterators to access this view. Different views have different iterators,
which are not comparable in any way. Now for any view (for any order) I may
want to have one or more Indexes. Index is something that provides
direct(random) access based on some key into view. Index present iterator
interface. All indexes for the same order present the same iterator which is
a view iterator.
   Lets consider some example: an address book. We may have different orders
   1. City, Last name, First Name order
   2. Last name, First Name order
   3. Phone number order
   4. Time registered order

Now each order may have in addition following Indexes defined:
   1. City, Last name, First Name
       a) City Index: jump to the first record in the particular city
   2. Last name, First Name
      a) Last Name Index: jump to the first record with particular last name
   3. Phone number order
      a) Area code Index: jump to the first record with particular area code
   4. Time registered order
      a) Year Index: jump to the first record registered in particular year

I see Order and Index as two independent concepts and current model seems to
mixing them in one.



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