ToDo:
C++ じゃなくてプリプロセッサの方で書けるか、という話。 単に a って書くだけ、とかはナシでちゃんと一個は # がある必要があるみたいなルールで。
とりあえず C のマクロってヤツは改行を出力できないと思うので、 そのへんで既に僕の中ではできない確定しかけてるんだけど、 まぁ cpp 的には改行も空白もそんな違いないだろう的な話で、 改行が空白になっちゃうのは大目に見ることにする…
となると…と書いたのが
#define Q(x)x Q(x) Q(#define Q(x)x Q(x))
とか。 これでまぁいいだろーと出力を見てみると、
#define x Q(x)x x Q(x) Q(#define x Q(x)x x Q(x))
とかになってておかしい。 具体的には余計な x がついてる。
そうか2行目の外側の Q() の中の Q() が展開されちゃうんだなーということで、
#define QQ(x,y,z)x##y##z QQ(x,y,z) QQ(#define Q,Q(x,y,z)x##y##z Q,Q(x,y,z))
まぁこんなとこじゃないでしょうか。 もうちょい短くする方法とかなんとか改行出せないかとかは今度考える
(02:32)
前 | 2011年 2月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。