49 :
40:
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!!!!!!!!!!
//テンプレート使ってる意味もクラス使ってる意味もねぇぇぇぇ!!
50 :
40:2005/10/31(月) 11:40:21
このクラスは実験用コードじゃなくてマジ使われていた筈、
正直ロジックに深く噛んでいるから移植担当の漏れの小手先では直せない。
となるとこのヤヴァさを英語で諭して直してもらわないとイカンのか・・・。
正直・・・ ○| ̄|_
51 :
40:2005/10/31(月) 11:42:44
>>49 訂正:class E::kmapはKMapじゃなくてKMap&な。