This is a template class which implements a simple associative array. A NameList consists of N items, where each item has a name, an index, and an associated data value (the type of which is determined by the type given to the template).