This file also defines objects that represent a set of services provided on a templated type, but without needing to know the actual type stored in the template. The objects operated on are called "anonymous" objects, since their specifics are hidden from view. One object provided is the object_instantiator, which knows how to create an array of anonymous objects. The object_modulator class can assign to anonymous objects of the same type. There are also small templated factory objects that can produce, for example, an object_modulator for a subclass of objects that follow the proper rules. This support is utilized in the various classes that provide generic algorithms, such as the array_algorithms.