One historical note: a lot of the logic in these classes is split out because all the template instantiations led to memory issue in old compilers.
One historical note: a lot of the logic in these classes is split out because all the template instantiations led to memory issue in old compilers.