Boost logo

Boost :

From: Darren Cook (darren_at_[hidden])
Date: 2004-03-27 04:54:11


Hi,
Here is my review of indexed_set.

    What is your evaluation of the design?

Fine. I'd have liked an option to be able to attach indexes at run-time as
well, but that is probably a completely different container.

I'd like to see greater uniformity between sequenced and normal indexes, so
I can write generic functions that can take either.

I especially did not like that the container as a whole inherits the
interface of the first named index. I think this is asking for trouble, and
I want to be forced to write get<mytag> for all indexes.

    What is your evaluation of the implementation?

I didn't look at the source code.

The error messages were *very* long, even by STL standards.

    What is your evaluation of the documentation?

Fine. I'd like to see more examples.

    What is your evaluation of the potential usefulness of the library?

I have uses in mind for it, mainly for statically analyzing data where I
currently tend to use PHP with an SQL back-end: I need something much
quicker when the data set gets large; I don't need multi-user access or
multiple tables or joins.

    Did you try to use the library?
    With what compiler?

Yes, with gcc 3.2 (RedHat 8 version). I wrote a test script with a sequenced
index, and 5 non-unique indexes. I used a 2nd indexed_set to store counts of
occurrences (I could have used a multimap, but I found using indexed_set no
harder, and I like that it is expandable).

I didn't get around to trying project, or unique indexes, or inserts, or
loading it with lots of data.

    Did you have any problems?

Yes, which were all answered by Joaquin. So it worked as I wanted in the end.

   How much effort did you put into your evaluation? A glance? A quick
    reading? In-depth study?

I read all the docs except the reference page, and then spent about 4 hrs
developing my test script.

    Are you knowledgeable about the problem domain?

I've used stl containers before :-).

    Do you think the library should be accepted as a Boost library? Be
    sure to say this explicitly so that your other comments don't
    obscure your overall opinion.

Yes.

    Naming?

Someone mentioned boost::table, or indexed_table. I like that as it is not
too long, is descriptive, and is more suitable now the library is more than
just a super std::set.

I mentioned before I want to lose one of the "type" words from:
   index_type<C,T>::type

In my test program I had a
    using namespace boost::indexed_sets;
at the top. However the container is unusable without a typedef, and I wrote
helper template functions for just about everything I wanted to do, so I can
probably not need to do that.

Which is a long-winded way of saying I don't care what the namespace name is.

Darren


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