a4_d0004: typedDef について
(1)
- プリプロセッサの普通の #define は、引数の型を見ないので、型に応じてdefineを使い分けることはできません。
- これは便利ではないなと思いました。それで、defineマクロの引数にも型情報を持たせて、型も一致した場合のみに、そのマクロが適用されるような仕様を考えました。
- プリプロセッサは基本的に型システムを持っていないため、簡易的な方法で型を表現する必要があります。
- 私は、「マクロ引数の最初の数文字が型を表す」ということにしてみました。
#define i Int:R00
#define d Double:F00
- こう書いた時、iは「Int:R00」という7文字のテキストでしかありませんが、Int型の「R00」に見立てるのです。
- 同様にdはDouble型の「F00」です。
(2)
#typedDef Let(Int:,r, CInt:i) Lod_RI(r,i)
- これは第一引数rはInt型で、第二引数iはCInt型です(CIntはConstIntの略です)。
こめんと欄