LunaCat
RTTI の実装を、自前でやるか type_info を使って実装するか思案中。
あとは、どうやって実オブジェクトを生成するか、という問題がある。 今までは仮実装として new で生成したポインタをセットしていたが、new の返り値がポインタなのは頂けない。リークの原因になる。 あと、内部クラスである Data クラスにもアクセスされて…
あとは、内部のデータクラスは公開する必要はないので内部クラスに入れて protected にして、ポインタはスマートポインタに変えてやる。 class Hoge{ protected: class Data{ public: virtual void foo(){} virtual void bar(){} }; private: Data* get(){ r…
このライブラリのミソは、ほとんどのクラスは参照型オブジェクトだという点だ。 簡単に言ってしまえば、Java ライクなのだ。 例えば Java で、 Hoge hoge; hoge.foo(); こんなプログラムを書くと、エラーが出る。 なぜなら、Hoge は実体への参照であり、その…
namespace 周りのことを考えてみる。 namespace は、グローバル名前空間を汚さないので、非常に便利だ。 なので、LunaCat は全て "LunaCat" という namespace で囲んでやることにする。 で、さらにその上から、機能別に namespace を使う。 // Object.h name…
自分のライブラリの目的は Luna を wrap することなので、LunaCat を使う側は、DirectX や Luna が可視状態になってはいけない。 つまり、LunaCat のヘッダで、DirectX や Luna のヘッダをインクルードしてはならない。 なので、共通インクルードファイル st…
新しい Windows のライブラリでも作ろうかなと思って、しばらく DirectX に触ってたんだけど、面倒すぎて挫折。 そこで、ネット上にある既存のライブラリを使うことにしました。 今回使うのは、Dx用ライブラリ Luna。 http://www.twin-tail.jp/ このライブラ…