ゲームにおけるデータ構造・クラス設計・パターンat GAMEDEVゲームにおけるデータ構造・クラス設計・パターン - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト103:名前は開発中のものです。 06/09/02 18:17:30 NT+ChiaN 衝突判定でよく話題になるダブルディスパッチだけれども boost::variant使うと継承無しで実現できちゃうよ。 中身はswitch caseのコンパイル時自動生成してるだけだけど。 継承関係なしで仮想関数の真似事もできるんで、 たまには役に立つかもしれない。 104:名前は開発中のものです。 06/09/02 18:26:27 AcWLcw3K GameObjectは型クラスの概念に近いことが多いから、 ある程度規模が大きくなると、コンパイル時のダブルディスパッチの確定だけじゃ追いつかなくなるんだよね… UnrealEngineではスクリプトに完全に委譲してしまってるみたいだけど。 105:名前は開発中のものです。 06/09/02 18:36:54 NT+ChiaN variant型なんだからもちろん実行時型識別してくれるよ。 具体的には型にid振ってswitch caseしてるだけ。 メモリアロケーションも発生しないからなかなか優秀。 ただオブジェクトサイズが最大のものに揃っちゃうけど。 106:名前は開発中のものです。 06/09/02 18:40:42 NT+ChiaN こんな感じね。↓ #include <boost/variant.hpp> using namespace boost; class visitor : public static_visitor<> { public: void operator () (int n, int m) const {} void operator () (char n, char m) const {} void operator () (char n, int m) const {} void operator () (int n, char m) const {} }; ・・・・ variant<int, char> v0, v1; v0 = int(2); v1 = char(3); apply_visitor(visitor(), v0, v1); v0 = char(2); v1 = char(3); apply_visitor(visitor(), v0, v1); 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch