[978] Re:関数の型の宣言構文について
投稿者:(ぱ)こと管理人@自宅環境復活
2007/06/25 01:47:14
>普段使っていないと、久しぶりに使ってみたときに、つい括弧つけちゃった
>という経験があります。結局、自分が普段使っている言語に合わせるのが一番
>なのかなとも思います。
それもひとつの手ですし、なまじ似てるから混乱するというのなら、
いっそ中括弧でなくendで終わる構文にするとか、根本的に変えてしまう
というのもありかもしれませんね。
>>当時は、Javaのような「ポインタしかない言語」が嫌で、クラスは実体でも
>>宣言できるようにしようとしていましたし、そうなるとtemplateも、Javaのように
>>コンパイラだけでごまかしきることはできなくなります。
>
>(C++風の)templateなら、コンパイラだけでなんとかなるのではと思ったのですが、
>何か見落としがあるんでしょうか?あるいは、
どこまでVMに実行時情報を持たせるかにもよりますが、たとえばJVMでは、
T型の変数 a, b があるとき、
Tがintのときの a = b; と、Tがdoubleのときの a = b;を同一のバイトコードでは
表現できないのでは?
Javaはクラスに関する限りポインタ(参照)しかない言語ですし、
Genericsで対象にできるのは結局Objectだけなので、コンパイラだけで
ごまかしきれてますけれども。
基本型は対象にしないとしても、クラスの(ポインタでなく)実体を扱えるように
した場合、C++のように機械語を吐くコンパイラでは、「何バイトコピーするか」が
型ごとに違ってきます。このへんVMだと工夫のしようはありそうですが。