Boost logo

Boost :

Subject: [boost] Fwd: [Boost-users] condensed overview of boost
From: Joachim Faulhaber (afojgo_at_[hidden])
Date: 2011-05-23 09:16:01


---------- Forwarded message ----------
From: Joachim Faulhaber <afojgo_at_[hidden]>
Date: 2011/5/23
Subject: Re: [boost][Boost-users] condensed overview of boost
To: boost_at_[hidden], boost-users_at_[hidden]

Hi Olaf, Hallo Dresden,

2011/5/12 Olaf Krzikalla <olaf.krzikalla_at_[hidden]>:
> Hi @boost,
>
> recently I've given some lectures about some selected boost libraries.

Thank you for teaching boost!
(boo to the community for not answering for so long ;)

> After
> that the audience expressed the wish to get an overview over all current
> boost libraries. Thus for my next lecture I sat down and digged through the
> complete 1.46 for several day. I found a lot of useful stuff, but I also
> found a lot of obsolete, superseded, replaced or will-be-superseded stuff.
> Some libraries seems to be sub-libs of other libs. Is there an overview of
> inner lib relations and the actual lib state wrt. to the overall
> development?

There is an overview on the boost web-site www.boost.org of course in
an synoptic quality with short descriptions of each library. As far as
I know there is no single documentation on inter library relationships
that is maintained, correct me if I'm wrong.

Generated dependency graphs were provided by Chrisoph Heindl in December 2008.

http://lists.boost.org/Archives/boost/2008/12/146290.php
http://picasaweb.google.com/christoph.heindl/BoostDependencies1370

for boost-1.37 but not updated later.

> The issues I've found so far:
>
> - Compatibility: very narrow. Is it still needed as a public lib?
> - Functional, MemFun: superseded by Bind
> - Call Traits, Functional/Forward, Lambda: will be superseded by C++0x

> - Interval: can this become a sub-lib of ICL?

boost::numeric::interval is closed interval on numeric types with a
focus on interval arithmetic. It is also suitable handle numeric
precision problems AFAIK, but I'm not an expert for that.

In contrast ICL has a focus on the set character of intervals and
their composition in interval containers. Non numeric intervals are
possible as long as there is an ordering on the domain_type.

I think it is unfortunate that ICL and numeric::interval do not
interplay well. One of the main obstacle are the fixed closed borders
of numeric::intervals, that lead to problems when adding or
subtracting intervals to and from interval containers. There were
discussions on this on the list but the authors of numeric::interval
seemed not to be active at the time.

Since numeric::intervals serve numeric purposes and icl::interval
serve more general pusposes I think they can coexist happiely. As long
a numeric::interval is not actively maintained, I don't think there is
a chanche for change.

> - Meta State Machine / Statechart: whats the actual difference? I.e.

Meta State Machine is a library that generates finite state machines
completely at compile-time from meta code. MSN is more expensive at
compile time but may generate even faster code than a "traditional"
FSM. Maybe Christophe can comment on this.

>  which problem is solved by one lib but not by the other?
> - Fusion & Tuple: how are these related? Could boost::tuple become a
>  typedef to boost::fusion::vector.
>
> I know that most of these relations are there for historical reasons and
> won't be changed. However I wish it had been documented somewhere. That
> would make an in-depth introduction of boost a lot easier.

There is no ready made structure or institution within boost for this.
But definitely there are people who have similar thoughts, concerns
and intentions. It depends if someone is going to contribute and/or is
taking the lead for an effort like this.

As mentioned above Chrisoph Heindl provided generated dependency
graphs. Boris Schäling wrote an online book
http://www.highscore.de/cpp/boost/index.html
that has been translated by others. Paul Bristow cares on
documentation quality for the math stuff. Robert Ramey, Dean Berris
and others had initiatives about redesigning the boost web-site, just
to mention a few things.

So your effort on creating an overview and document on inter library
relationships could be an own contribution and other could join in.

Thanks again,
Joachim

--
Interval Container Library [Boost.Icl]
http://www.joachim-faulhaber.de

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