CbC ってのをやっていると、C の forwarding prototype が、かなりうっとうしいです。一応、自動的に生成してくれるscript を書いたんだけどさ。
あと、C で困るのは、
typedefrec
みたいなのがないこと。
typedef struct {
Node left;
Node right;
} *Node;
ってことさえも出来ない。
typedef struct node {
struct node * left;
struct node * right;
} *Node;
とする必要がある。typedef の構文は、
typedef void (*FuncPtrWithTwoIntegerArgs)(int,int);
とか任意の宣言が使えるので、typedefrec みたいなのだと、うまく構文解析できない。げろげろです。
typedefrec void (*FuncPtr)(int,FuncPtr);
みたいに書きたいのだが... まぁ、無理すれば出来なくはないんだけど。
D言語は、型推論があるので、prototype は要らないのだが、typedefrec があるわけでもないらしい。
でも、問題はそこではなくて、
dmd と、gdcと、ldcと、D.NET 版で、少しずつ異なる
ってことだな〜 まぁ、しょうがないんだけど。
gcc は、このところ、
過去なんて知ったことか、俺らは勝手に gcc の中身をがんがん書き換える
って方針らしく、gcc base の言語(llvm も含めて)は、軒並破綻しているようです。うちも、はまってます。
D言語なら、Google の go 言語の方が良いんじゃないの説もある。まぁ、賛成しなくもないです。
No comments:
Post a Comment