LunaCat

設計(6)

RTTI の実装を、自前でやるか type_info を使って実装するか思案中。

設計(5)

あとは、どうやって実オブジェクトを生成するか、という問題がある。 今までは仮実装として new で生成したポインタをセットしていたが、new の返り値がポインタなのは頂けない。リークの原因になる。 あと、内部クラスである Data クラスにもアクセスされて…

設計(4)

あとは、内部のデータクラスは公開する必要はないので内部クラスに入れて protected にして、ポインタはスマートポインタに変えてやる。 class Hoge{ protected: class Data{ public: virtual void foo(){} virtual void bar(){} }; private: Data* get(){ r…

設計(3)

このライブラリのミソは、ほとんどのクラスは参照型オブジェクトだという点だ。 簡単に言ってしまえば、Java ライクなのだ。 例えば Java で、 Hoge hoge; hoge.foo(); こんなプログラムを書くと、エラーが出る。 なぜなら、Hoge は実体への参照であり、その…

設計(2)

namespace 周りのことを考えてみる。 namespace は、グローバル名前空間を汚さないので、非常に便利だ。 なので、LunaCat は全て "LunaCat" という namespace で囲んでやることにする。 で、さらにその上から、機能別に namespace を使う。 // Object.h name…

設計

自分のライブラリの目的は Luna を wrap することなので、LunaCat を使う側は、DirectX や Luna が可視状態になってはいけない。 つまり、LunaCat のヘッダで、DirectX や Luna のヘッダをインクルードしてはならない。 なので、共通インクルードファイル st…

LunaCat プロジェクト

新しい Windows のライブラリでも作ろうかなと思って、しばらく DirectX に触ってたんだけど、面倒すぎて挫折。 そこで、ネット上にある既存のライブラリを使うことにしました。 今回使うのは、Dx用ライブラリ Luna。 http://www.twin-tail.jp/ このライブラ…