[HSP]#​defineマクロの初期値に式を書けない

HSPのプリプロセッサの現在の仕様では、#​defineマクロの初期値に単一の値は書けるが、式を書くとエラーになる。

例:

#​define test(%1=12) mes %1
これはOK。

#​define test(%1=10+2) mes %1
これは `10+2` が式(+記号が入っている)なので、コンパイルエラー(bad macro parameter expression)になる。

#​define test_p1_default (10+2)
#​define test(%1=test_p1_default) mes %1
妥協案としては、このような感じで初期値を別のマクロとして定義する。こうすると一応動く。2つの定義順は逆でも良い。

なぜこんな仕様になっているのか、という疑問はHSPには付き物だと思う。

いいなと思ったら応援しよう!