Following the fork of OpenOffice that gave birth to LibreOffice,
KeyValue has replaced the OpenOffice extension to a LibreOffice one.
Since these two office suites are still very similar, the LibreOffice
extension is compatible with OpenOffice. However, going forward,
KeyValue will stick to LibreOffice.
A more inheritance-friendly design for builders has been implemented.
Two different builders that (usually) build different types are now
able to return pointers to a common base class. (See section
Implementing a Builder specialization of
the user's manual.)
Additionally, almost out of the box support is provided for boost
smart pointers when core-library objects managed by KeyValue derive
from a common polymorphic base class. (See section
Examples of pointer traits header files of
the user's manual.)
Out of the box support is provided for
AnyPtr, which is a very flexible smart
pointer that does not put any design constraint on core libraries. An
article about AnyPtr has appeared on
Dr.Dobb's on April 2011. (See
Twisting the RTTI System for Safe Dynamic Casts of void* in C++.)
Several unit tests have been added to KeyValue, increasing its
reliability.