今まで試作したものたち

ものによるのだけど、 d3d11.h をパースしたりすると 要素が数万とかになる巨大なツリーを構築するので練習に良い。 同じものを作りすぎである。

imgui.h

限定的にだが c++ の機能を使っているので、言語によっては気持ちよくラップできない。

  • 関数オーバーロードとデフォルト引き数

    • mangling は libclang で対処できる

    • rust などオーバーロードが無いものは厳しい。

    • あってもディスパッチするコードを生成するのが厳しい。

    • const ImVec2 &pos = ImVec2(0, 0) みたいなのが厳しい。

  • フォント設定とかのメンバー関数

    • C の呼び出し関数を用意する必要があるかもしれない。

d3d11.h

COM の仮想関数テーブルを工夫すれば行ける。 GC言語だとデストラクターの呼びだしが制御できないかも。

cython

最近、 C のライブラリーを cython でラップするのに着目している。

練習に作ってみた。

予定

cindexcython 部分の自動生成をやってみる。 更に、 .pyi を同時に生成すればコード補完の効くネイティブモジュールが作れるのでは。 あと、 cindex の使いかたについてのメモをまとめたい。

imgui

サブモジュールだけ cython にする