・・・を見れば、少なくともCであれば、j の値が5倍されて結果が i に格納されるということがわかる。
しかしC++の場合では、同じスニペットから分かることは何もない。まったく。C++で本当に起こることが何か知るためには、ぜんぜん違う場所で宣言されているかもしれない i と j の型を見つける必要がある。それはjがoperator*をオーバロードしている型の変数かもしれず、かけ算したときにはなはだ気の効いたことをやってくれるかもしれないからだ。そして i はoperator=をオーバロードしている型の変数かもしれず、また型が異なるために暗黙の型変換
女房と言語は新しい方がいい (スコア:1)
と言ってるだけだな。
Cの何が悪いかちゃんと理解できればC++できちんとしたコード書けるだろ。
Windowsにはmanaged objectだとかもあるだろ。
取り替えられるならとっくにやってる&あんたが知らないだけだと思われ。
Re: (スコア:1)
今のC++は複雑すぎるだろう。
新しい言語の成果をどんどん取り入れるのはいいが、頑なに互換性を守るために歪な文法を強いられる。
Cの良いところは、言語使用が小さく一行一行がどういう機械語に置き換わるか予想できるところ。
モダンC++は a = b;とだけ書かれていても凡人には想像も及ばないことが行われていたりする。
あと、C++のコミュニティが最悪だね。
間違った理解やちょっと古臭いコードを書くと「そんなことも知らないんですか。勉強して出直してきてください」だもんな。
Re: (スコア:4, 興味深い)
どこかで似たような話を読んだなぁと思ったらブックマークに残ってた。
間違ったコードは間違って見えるようにする [joelonsoftware.com]
一般的に言って、私はものごとを隠してしまうような言語機能には恐れを感じる。次のコード
i = j * 5;
・・・を見れば、少なくともCであれば、j の値が5倍されて結果が i に格納されるということがわかる。
しかしC++の場合では、同じスニペットから分かることは何もない。まったく。C++で本当に起こることが何か知るためには、ぜんぜん違う場所で宣言されているかもしれない i と j の型を見つける必要がある。それはjがoperator*をオーバロードしている型の変数かもしれず、かけ算したときにはなはだ気の効いたことをやってくれるかもしれないからだ。そして i はoperator=をオーバロードしている型の変数かもしれず、また型が異なるために暗黙の型変換
Re:女房と言語は新しい方がいい (スコア:0)
つまり、kotlinはクソってことだね。