Some compilers (for example, VxWorks) tend to instantiate redundant copies of templates that are defined in the C++ framework. These redundant instantiations cause the resulting code (executable) to be much larger.
To enable the use of relations without templates, a set of typeless (void*) containers is supplied as an alternative implementation. The generated code for relations that use the typeless containers is responsible for supplying a type-safe interface.
However, supplying typeless containers does not entirely solve the problem because templates are still included via the framework .h files. To resolve this issue, selective includes of framework objects must be used to avoid getting the template definitions "in the back door."
To support selective framework includes, the oxf.h file has been minimized to include only the most basic files. The following properties have also been added: