The original motivation for Boost.Extension was a moving-object-tracking application. This application was to be used for both real-time and post-processing analysis of a series of images. The types of cameras used for tracking were anything from low-speed, low-resolution IR cameras, to medium-speed color camcorders to high-speed, multi-spectral IR cameras.
Each client or potential client of the application had different input types, and different types of data they needed at the end. There were, in general, the following major problems:
Initially, we just delivered different builds to each customer. This was tedious, and only solved the first problem.
For this reason, work was begun on using shared libraries which would each contain a related set of modules. Each customer would be given two sets of files:
Boost.Extension is designed to make this type of solution simple, portable, and easily extensible.