a4_d0001
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 現在開発中のプリプロセッサについて
-(by [[K]], 2026.02.10)
** (0) 大前提として
-私は同じものを作るときは同じようには作りません。
-いきなりわかりにくい表現になってしまいましたが、つまり私...
** (1) 多重define
-普通のプリプロセッサでは、マクロ Abc が定義済みの時に、...
-でも私のプリプロセッサではエラーにはならず、新しい定義が...
-そして Abc を undef すると、定義は前の定義内容に戻ります。
-これの何がうれしいのか?
-何らかのコード片があったとします。・・・C言語ではコード...
-でも #define があるとこの限りではないのです。他とぶつか...
-しかし私の仕様になっていれば、ぶつかっていても気にするこ...
-この機能は、 #define / #undef ではなく、 #.def / #.undef...
-#define / #undef には従来通り多重定義を認めず、また復元...
** (2) マクロのオーバーロード
-C → C++ での進歩点として、「同じ関数名であっても、引数の...
-それならば、プリプロセッサマクロもオーバーロード可能にし...
-ただしプリプロセッサの引数に型はないので、マクロの識別は...
-つまり、 Abc(1,2) と Abc(1,2,3) は別のマクロです。
** (3) 複数行マクロ
-普通のプリプロセッサでは、マクロは1行で書かなければいけ...
-この制約から逃れるために、行末にバックスラッシュを書いて...
-しかしこれがみっともないのです。
-私のプリプロセッサでは、[^ ... ^] でくくって定義すること...
-この機能によって、 C++ のテンプレートに近いこともできま...
** (4) 追加型マクロ
-宣言済みのマクロに対して、 #.addTl でマクロを宣言すると...
-同様に #.addHd もあります。
-例えばこんな感じです。
#.def Counter 0
#.def Inc [^
#.addTl Counter +1
^]
Inc Inc Inc Inc
print Counter;
-こうすると print 0+1+1+1+1; に展開されます。
* こめんと欄
#comment
終了行:
* 現在開発中のプリプロセッサについて
-(by [[K]], 2026.02.10)
** (0) 大前提として
-私は同じものを作るときは同じようには作りません。
-いきなりわかりにくい表現になってしまいましたが、つまり私...
** (1) 多重define
-普通のプリプロセッサでは、マクロ Abc が定義済みの時に、...
-でも私のプリプロセッサではエラーにはならず、新しい定義が...
-そして Abc を undef すると、定義は前の定義内容に戻ります。
-これの何がうれしいのか?
-何らかのコード片があったとします。・・・C言語ではコード...
-でも #define があるとこの限りではないのです。他とぶつか...
-しかし私の仕様になっていれば、ぶつかっていても気にするこ...
-この機能は、 #define / #undef ではなく、 #.def / #.undef...
-#define / #undef には従来通り多重定義を認めず、また復元...
** (2) マクロのオーバーロード
-C → C++ での進歩点として、「同じ関数名であっても、引数の...
-それならば、プリプロセッサマクロもオーバーロード可能にし...
-ただしプリプロセッサの引数に型はないので、マクロの識別は...
-つまり、 Abc(1,2) と Abc(1,2,3) は別のマクロです。
** (3) 複数行マクロ
-普通のプリプロセッサでは、マクロは1行で書かなければいけ...
-この制約から逃れるために、行末にバックスラッシュを書いて...
-しかしこれがみっともないのです。
-私のプリプロセッサでは、[^ ... ^] でくくって定義すること...
-この機能によって、 C++ のテンプレートに近いこともできま...
** (4) 追加型マクロ
-宣言済みのマクロに対して、 #.addTl でマクロを宣言すると...
-同様に #.addHd もあります。
-例えばこんな感じです。
#.def Counter 0
#.def Inc [^
#.addTl Counter +1
^]
Inc Inc Inc Inc
print Counter;
-こうすると print 0+1+1+1+1; に展開されます。
* こめんと欄
#comment
ページ名: