関数呼び出しのシンタックスシュガーを実装しました。
ラッパーを書かずにC言語のAPIをオブジェクト風に呼び出すことができます。
LLPMLで構造体のメンバ関数は、暗黙の第一引数としてthisが渡されます。
次の呼び出しは、
Test t;
t.Method(1);
以下の呼び出しと等価です。
Test t;
Test.Method(t, 1);
これを逆にすればC言語の関数をオブジェクト指向風に呼び出すことが可能になります。ラッパー風のシンタックスシュガーです。
次のようなWin32APIの処理を、
MSG msg; while (GetMessage(msg, null, 0, 0)) { TranslateMessage(msg); DispatchMessage(msg); }
以下のように記述することができます。
MSG msg; while (msg.GetMessage(null, 0, 0)) { msg.TranslateMessage(); msg.DispatchMessage(); }
シンタックスシュガーのため、ラッパーなしで実現しているのがポイントです。オブジェクト指向風の記法は補完と相性が良いため、補完と組み合わせればコード記述の能率が向上するかもしれません。