If you do accept to access your list like this:
list[ type_index ( typeid(classname) ) ]
you can use the std::type_index to map your class to a indexable (usable in std::map and the like) object and you can declare your std::map as follows
std::map< std::type_index , ... > list;
As far as I remember this needs a compiler that complies to the new C++ standard.