, " ", " ", , , . , , , , , . , , , - (, ), , .
, Potatoswatter, . , , , - , ; , . , , , !
, , ( Potatoswatter ), ints; , , . , , , , - , T * void, map<void*, PortPin>.
It will also be difficult that the object and its first component (and that component of the first component, etc.) will have the same pointer and, therefore, will all be associated with the same search value on your map. If you are interested, you can build a structure containing both a pointer and an identifier of the type (a std::type_infocontaining the typeid()object, or intfor your own sizeof()if you compile without RTTI on and therefore typeid()not available) and use this as a tag for the map.