謎の人気
スミスくんから渡された謎のヘッダ(紙切れに鉛筆書き)。数学の時間に書いたようですね。彼の友人である例のRuby信者の方らしいのですが、多分会ったことはあると思う気がするけどまともに話したことはありません。訳が分かりません。元ネタは私のはてなIDのid:yappy_tです(プロフィールにもあるようにyappyの名前が取れなかったのでC/C++の型名っぽくなっています)。
/* yappy.h */ #ifndef _YAPPY_H_ #define _YAPPY_H_ typedef int *yappy_t; #define YAPPY_MAX(a, b) (((*a)>(*b)) ? (*a) : (*b)) #define YAPPY_MIN(a, b) (((*a)>(*b)) ? (*b) : (*a)) #define YAPPY_NEW new yappy_t; #define YAPPY_NEXT(x) (*(++x)); #define YAPPY_RELEASE(x) delete x; #define YAPPY_PREV(x) (*(--x)); typedef struct __YAPPY { yappy_t p; } *YAPPY; yappy_t notswap(const yappy_t p, const yappy_t q); #ifdef __cplusplus template <typename T> yappy_t yappy_cast(T t) { return dynamic_cast<yappy_t>(t); } #endif extern yappy_t Global_Yappy; #endif
$ gcc sample.c -o sample -l yappy
他に使用法サンプルやnotswapの実装(書きかけ)がありますが省略。notswapは(typedefを戻して話すと)const int *の引数をconst_castでconstを外して結局swapするそうです。つっこみどころ満載ですが読み取れる限りできるだけ原文そのままにしました。「だから副作用のある式をマクロに使うのは〜」とか反応しておきましたがもちろんわざとだそうです。
追記:
なんでこう反応が早い人ばっかりなの
id:nagoya313:20091002
それ以降yappy_t型は私と友人の間で静かなブームを迎えており、
とかなんぞwww