typedef map<K,vector<void*> > KMap;
//これがTopレベルで宣言されてる段階で脳内に非常ベルが鳴り渡るわけだが。

class E{
 KMap kmap;
 KMap::iterator pos;

 E(KMap& m, KMap::iterator p) : kmap(m), pos(p){;};

 //略

 template<int ix, typename T> T*& get(){
  return (static_cast<T*&>(pos->second[ix]));
 }

 template<typename T> T*& get(){
  return (reinterpret_cast<T*&>(pos->second[T::pos]));
 }
};
//Nooooooooooooooooooooohhhhhhhh!!!!!!!!!!
//テンプレート使ってる意味もクラス使ってる意味もねぇぇぇぇ!!