You can put objects of user-defined type into a std::map, if you tell the standard library how to hash those objects, but types are not objects and can never be manipulated at run-time.
Either I am seriously misunderstanding the question, or this appears to be an XY problem: http://xyproblem.info/
When the following code happens: s1 obj, the system creates an object from a definition run time, that definition is stored somewhere. If I could access that location/address it would be possible.