Boost logo

Boost Users :

Subject: Re: [Boost-users] [mutli_index] class reference available? / How to detect insertion failures
From: Nick Martin (nick_at_[hidden])
Date: 2008-10-09 19:51:40


Adam,
Thank you for your quick reply. I had looked at the particular page that you
reference, but was confused by its contents.

I was confused by the reference documentation included with multi_index for
a few reasons.

My main points of confusion came from:

   - Reference pages have no introductory text -
   http://www.boost.org/doc/libs/1_36_0/libs/multi_index/doc/reference/hash_indices.htmldoesn't
say what a hash index is, what it is used for, etc. The main
   reference page is especially terse
   http://www.boost.org/doc/libs/1_36_0/libs/multi_index/doc/reference/index.html.

   - Header file "synopsis" - it is probably lost on me, but why are
   excerpts of the source code included?
   - Large amount of source code inclusion - as a user of the library I
   haven't found the inclusion of portions of the headers particularly helpful.
   I am sure that there is a good reason for them to be there, but why not just
   have a simple line or two stating that a particular header is required for
   certain situations?
   - Font usage - why are "Effects" "Returns" "Complexity" in the same size
   (or very similar size) font as "Modifiers"? It took my eye away from the
   actual method names, which is what I was looking for.
   - Why are the constructors, method names, etc so far down the page (six
   page downs on my computer)? It seems like that is the information that is
   most helpful/searched for.

Now that I understand what I am looking at a little bit better, it does look
like multi_index does follow the same outline as some other boost libraries
(like bimap).

That said, multi_index still looks like it has a way to go to catch up with
some other libraries (Asio and Tuple, for instance), which I find much
easier to use and understand.

I can see from the boost-users archive that documentation standardization
has been an issue for a while (goes back to at least 2005).

I also realize that this is free software and the documentation is what it
is. As a user that is used to documentation from other vendors and other
styles (JavaDoc, DoxyGen, MSDN library), this documentation is severely
lacking. That is a shame because I think that multi_index itself looks like
a great library that should be used by as many developers as possible.

Thanks,
Nick

On Thu, Oct 9, 2008 at 3:50 PM, Adam Merz <adammerz_at_[hidden]> wrote:

> Nick Martin writes:
> >
> > There doesn't appear to be comprehensive class reference documentation. I
> > only figured out how to do simple tasks like inserting new items into the
> > container by looking at the examples
> > (http://www.boost.org/doc/libs/1_36_0/libs/multi_index/example/basic.cpp
> ).
> >
> > My specific question (which the examples don't seem to cover) is how to
> tell
> > when insertion fails. What if the new item's unique key constraint fails?
> I
> > have had many other, seemingly simple questions that I would hope could
> be
> > answered in minutes or seconds that have turned into hours of trial and
> error
> > and combing through example programs. What other resources are out there
> that
> > I refer to in order to use this great library?
>
> Full reference documentation is here:
>
> http://www.boost.org/doc/libs/1_36_0/libs/multi_index/doc/reference/index.html
>
> Insert behavior is documented here:
>
> http://www.boost.org/doc/libs/1_36_0/libs/multi_index/doc/reference/ord_indices.html#modifiers
>
> In answer to your specific question, "The return value is a pair p.
> p.second is
> true if and only if insertion took place. On successful insertion, p.first
> points to the element inserted; otherwise, p.first points to an element
> that
> caused the insertion to be banned. Note that more than one element can be
> causing insertion not to be allowed."
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net