@m_seki の

I like ruby tooから引っ越し

プリンス演算子

Planet Earthを借りたときに思い出したんだけど、太古のNetNewsかなにかで「プリンス演算子」が話題になったことがなかったっけ? もしかすると違う名前だったかもしれないけど、「プリンス」は名前に入ってたはず。

MacintoshのToolBoxやそれを模したOSなどではHandleという二重のポインタでメモリを管理してたんだよね。たとえばTextEditを管理するTEHandleは次のようにTERecへのポインタのポインタと定義されてた。

struct TERec {
 ...
 short teLength;     /*length of text*/
 ...
};
 typedef struct TERec TERec;
 typedef TERec *TEPtr, **TEHandle;

んで、構造体のメンバにアクセスするのにややこしい記号を並べなくちゃならなかった。
Pascalだと「^^.」が定番。

myTERec:               TEHandle;
....
myTERec^^.teLength;

Cのときにどう書くかというと、Appleのサンプルではこうだったみたい。

TEHandle hTE;
....
return (**(hTE)). teLength);

んでプリンス演算子はこんなの。「[0]->」を使う。

return hTE[0]->teLength;

って、あんまりおもしろくないね。