Boost C++ Libraries


Differences to Alexandrescu's Loki library

A very central notion in Loki is that of typelists, that is, lists of types rather than lists of values. A major superset of this functionality is available in Boost through the MPL, in which MPL Sequences of types and algorithms that work on them play the major role. It should come as no surprise then that this library uses the MPL heavily.

Where one in Loki would write TYPELIST_n(type0,...,typen), in MPL this would be mpl::vector<type0,...,typen>. This library hides most actual usage of the MPL under its hood, so you'll rarely have to touch it yourself, unless you're modifying the library code itself.

Whereas concrete factories in Loki were either-or in terms of the functionality they offered (i.e. operator new vs. stored prototypes), Boost.Factory allows these to be mixed when building the concrete hierarchy. The constructor argument binding and dynamic function functionality is also not found in Loki.