A C++ library for handling application-specific data associated with objects of reusable, light-weight classes

When designing classes in object-oriented programming languages, one has to distinguish between intrinsic properties which are inherent to the modelled entity, and data which is associated with the entity. For example, a triangle is intrinsically defined by three disjoint points, while associated data can be color or texture information in graphical applications, or material properties for two-dimensional scientific simulations.

While associated data depends on the respective application, intrinsic properties do not. Therefore, when designing reusable classes, associated data must not be part of the class itself. Reconsidering the example of a triangle, a class member for color information would immediately result in a potentially significant overhead for scientific simulations and thus reduce the reuseability of the class. However, the color information for the triangle still has to be accessible for graphical applications. This is where ViennaData comes into play, because it provides a convenient means to store and access associated data for small, reusable classes with intrinsic data members only.


More information can be found at http://viennadata.sourceforge.net/