1 名前:デフォルトの名無しさん [2009/01/24(土) 13:32:25 ] > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性が > どうとか言わないで、 > そんなのウソに決まってるから。 *あんた* のほうこそ大ウソつきだ。 C++ はひどい言語だ。これは、多くの平均以下のプログラマーが 使ってるためにさらに輪をかけてゲロゲロになっていて、どうし ようもないゴミが簡単に生産されるようになってる。正直いって、 C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だっ たとしても、それ自体、C を使う強力な理由になりうる。 Linus Torvalds tabesugi.net/memo/2009/1a.html#152154
2 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:33:14 ] マでやれよカス
3 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:35:12 ] C++ができたら、ほかの言語はなんでもできるみたいな自信家多いな > C++PG
4 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:37:27 ] いまだにC++がオブジェクト指向言語だと思ってるやつもいるしな
5 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:40:03 ] このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
6 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:42:36 ] Gitのソースを見てみたら、素直な書き方なんで心が洗われるような気がした。 C++好きのやつは、初心者のころの素直な気持ちを思い出して欲しい。
7 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:44:15 ] 仕事してると Linus の言う事はある程度分かってくる。 C++ 使いこなせる奴自体が少ないというのが C++ の大きな問題だということに。
8 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:54:59 ] 悪いけどLinusってフレーマーっていうイメージしかないから いまいち発言に説得力はないんだよね。論理的でもないし。
9 名前:デフォルトの名無しさん [2009/01/24(土) 14:09:03 ] Linus氏はポインタで優越感を感じテンプレートに劣等感を感じているのです。 Ubuntuです。 思いやりです。
10 名前:デフォルトの名無しさん [2009/01/24(土) 14:10:57 ] >>4 C++はオブジェクト指向言語だが?
11 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:14:00 ] Linusが言ったということだけで2chの厨房レベルの発言でも 感化される権威に弱い日本人って… せいぜい現場の親方どまりのLinusが Bjarneに劣等感いだきまくりなのが見え見えでなんとも… ちなみに俺はLinusがFedora使いだと知った時点であんまり信用できんな、と思いはじめた。
12 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:14:42 ] Linusが良いことを言った! クラスベースのオブジェクト指向言語なんて、オブジェクト指向 じゃないし。言語仕様がコロコロ変わり過ぎる。しかも互換性無し。 C++はゲロゲロのウンコ。C++マは、ウンコにたかる蝿に過ぎない。
13 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:15:06 ] >>10 うんうん。そうだね。
14 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:16:09 ] Linus は時代に適応できない過去の人だな。
15 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:18:19 ] >>10 まだ居るんだこういう人・・・
16 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:18:47 ] C++ はマルチパラダイム言語だよ
17 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:19:54 ] まあ、実際、マルチパラダイム言語なんて百害あって一利なし、というのは確かだが。
18 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:20:26 ] オブジェクト恥垢
19 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:20:35 ] 雑魚プログラマには使えんだろうな。
20 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:42:22 ] いいこと言ってるな、とは思うが、cで書いてるとC++のSTLとかメンバ変数とかを使いたくなる こともあるんだよなあ。いちおう、便利なところは便利だわC++。 世の中の「cわかります」と「C++わかります」って言ってる奴のほとんどがわかってない、 というのは同意。
21 名前:20 mailto:sage [2009/01/24(土) 14:45:30 ] メンバ変数じゃなくてメンバ関数だよ。メンバ変数ならcにもあるっての。
22 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:53:53 ] 型チェックを強化してくれ。 あとやっぱりテンプレートも欲しい。 そしたら C でもいい。 あとやっぱ無名 union も欲しい。 C++ に無いけど関数ない関数もくれ(0xのラムダは却下)。 STL 相当のも欲しいけど、Boost みたいな何かができることを期待する。
23 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:54:24 ] ところでみんなはC++分かってると豪語できる?
24 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 14:56:51 ] cならすっかりわかっていると言い切れるが、C++はよくわからん。
25 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:09:03 ] C++が最強だと言っていたときがあったが、いまではC言語を使っている。 複数人で開発するときに理解度が違いすぎて使えない。 とはいっても、ネームスペースとテンプレートが欲しい。 しょうがないから、いろいろな方法で同じようなことしているけどね。
26 名前:デフォルトの名無しさん [2009/01/24(土) 15:11:40 ] 複数人で開発するときにはCよりC++だろ。 常識で考えても非常識で考えても。
27 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:22:10 ] C++は、フールプルーフが無いからな。 成果物の質はプロジェクトのメンバーの最底辺に揃えられる。
28 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:26:11 ] なんだかんだでJava6が最強だ
29 名前:デフォルトの名無しさん [2009/01/24(土) 15:30:41 ] どうも、C++をオブジェクト指向ではないということが「カッコいい」と勘違いしてる奴がいるな。 C++は間違いなくオブジェクト指向言語だよ。
30 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:31:16 ] 寒々しい休日の午後にふさわしい実のない流れだな。
31 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:53:04 ] おいお前ら、 Linusが何千人もの(自称含めた)開発者を相手にしていることを忘れるなよ・・・ >>29 > 「カッコいい」と勘違いしてる奴がいるな。 あー、中二病っていうんですかね。
32 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:54:10 ] >>29 >「カッコいい」と勘違いしてる奴がいるな 俺がお前に抱いた感想そのもの
33 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:01:40 ] Firefox Google Chrome OpenOffice これらはLinusのいう「ひどい言語」で作られています。ゲロゲロです。
34 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:03:34 ] >>33 Firefox以外はゲロゲロではあるが。
35 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:22:26 ] >>27 ちょっと待ってくれよ。 C と比べての話だろ? C++ の方がコンパイル時エラー検出に役立つ仕様が多いだろ? 試しに例を挙げてくれよ。
36 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:27:32 ] 言語と人は別だと思うんだが その辺、整理したほうがよくない? C++使いは普通Cも出来るからバイリンガルなわけで 用途に合せて使いわければいいでは?
37 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:31:34 ] >>36 まあそうだな。 Cだと走らせてみないとわからないようなバグが、C++だとコンパイル時にわかったりする。 C++の方が便利なのは確かだろう。後発だし。 ただし、ここでは、「便利なのを使うと素人がたかって来るからやむを得ず避ける」という話だから、 言語と人とを分けて考えるのがちと難しい。
38 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:37:56 ] 言語仕様を人間フィルタ代わりに使うって、 実際的かもしれんが非生産的というかかっこわるいな。 C++が幅広すぎてノウハウ統一がしにくいなら 規約体系作ったりすればいいのに。 Linusってやっぱりギーク的ネガティブ思考なのかな。 こう、イメージとは違って フロンティア精神みたいなものとはかけ離れてるな。 まあ実際、Linus製ソフトってGitとかLinuxとか 基本的にカイゼンモデルで開拓系といよりは職人系なんだけど。
39 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:58:43 ] >>34 Firefoxもかなりゲロい GNOMEもコンポーネント化できずにwebkitへ行った
40 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 16:59:36 ] >>33 確かにゲロゲロだわ。Chromeは知らんが、 FirefoxもOOoも全てソースから、ちとマイナー環境で buildしようと試みるとウンコ踏みまくりだった。 コンパイラやライブラリの些細なバージョン違いに まで依存し過ぎ。
41 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:02:45 ] FFはビルドしたことないけど、 OOoはビルドにディスク空き10GB以上必要なんだよね…なにそれ?w
42 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:03:03 ] リーナスが口が悪いのは今更だろ? 「Minixはゴミ」 「OSXはウンコ」 「Gccはどんどんゴミになっていく」 「GNOMEはナチス」 「SVNは信じられないゴミ」 これにC++が加わっただけ。
43 名前:デフォルトの名無しさん [2009/01/24(土) 17:04:17 ] 美味しそうな食材集めて至高の料理を、と思ったら 出来上がったのがゲロだったと、そういう事ですか?
44 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:07:22 ] firefoxって、結構ガチガチに規約で固めてあると思ったけど それでもゲロゲロなんか linuxががゲロゲロだと困るからね
45 名前:デフォルトの名無しさん [2009/01/24(土) 17:17:02 ] C++使う奴はよって来るな!もいきー!
46 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:30:56 ] 45をコンパイルすると もいきー!→もんきー!→猿→西遊記→ドラゴンボール→悟空→最強 45 名前:デフォルトの名無しさん :2009/01/24(土) 17:17:02 C++使う奴はよって来るな!最強! 46 名前:デフォルトの名無しさん :2009/01/24(土) 17:17:02 ありがとう。
47 名前:デフォルトの名無しさん [2009/01/24(土) 17:32:46 ] よく読んでみなよ。 C++とC++の言語仕様が糞なのじゃなくて、 1.これを大して理解してない奴 2.そいつがこしらえた糞コード がウンコっていってんでないか? シリアルポートたたいたり、デバイスドライバ作ったり、割り込み考えたりするなら、C++はイラン。
48 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:33:00 ] そういやLokiとかいうオナニーライブラリはいまいずこ。
49 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:37:03 ] >>46 手抜きしないで時間も少し変えろよw コピペ修正ミスのバグだなw C++ が具合悪いことは認めるが、型チェックが強力なだけで C よりマシ。 C++ コンパイラでエラーが出たソースを却下するとか、 C++ コンパイラでコンパイルするけど class, template, using, :: が検出されたら却下するとか、 妥協が欲しいところだ。 つーかトランスレータでいいから、Linus 自身がマトモだと思う言語を作ったらいい。
50 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:40:38 ] >>49 言語が悪いんじゃないって言ってんのに話きかない奴だなおまえは
51 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:40:40 ] Loki懐しいな… 正直、C++ではSTLとboost以外使うコードなんか見つけた日にゃ rm -rfした挙句、HDD取り出してそれが記録されてた推定位置を アイスピックでガリガリにして再起不能にし それを落としたサイトのドメインでパケットフィルタでブロックして 全ブックマークからそのサイトにリンクしてるサイトを削除。 そこまでしないと気がおさまらない。
52 名前:デフォルトの名無しさん [2009/01/24(土) 17:44:20 ] boostのキモさは世界一。
53 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:49:03 ] リナスはシステムが得意なプログラマーで、コンパイラとか処理系が得意なわけじゃない。 というか、コンパイラのエラーとか型チェックとかの文句言うなら素直にJavaかC#つかえ。 速度差も結局はJITあるからC++とまったく差はない。 というか、動的にコードの置き換えが起きたりする可変(アスペクト)の研究が進んでるから、 C++で書いたコードと最適化コンパイラが作ったネイティブのコードより逆に速い。
54 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:50:12 ] でもboostが無いとC++ではまともに汎用的なコード書けないからなあ… 整数型のサイズ指定とか、C99仕様頼りになるのもなんか気持ち悪いし。 命名センスが???なのが多すぎるけど。 boost::filesystemなんてなんで再定義強要するような命名するのかわからん…
55 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:51:40 ] >>53 嘘はダメ
56 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:53:53 ] Linuxユーザーが気持ち悪いのも、リーナスの影響なんだな
57 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:55:41 ] >>50 何言ってんだ。 ナマの C はヤダって言ってんだ。
58 名前:デフォルトの名無しさん [2009/01/24(土) 17:56:42 ] リーナスって色白で体温低そう
59 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 17:57:12 ] 2chねらー気質なのは確か
60 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:22:29 ] 配列のサイズを取得するマクロすら標準で用意されていない C/C++ は両方ともうんこ
61 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:24:43 ] >>60 Cで書けばこういう奴が寄ってこなくなる訳か こりゃ>>1 に賛成せざるを得ないな
62 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:33:33 ] コメントが書きやすくなったC、ぐらいの人が多いよ実際。 で、クラスとはそれを専門にしてる誰かが書いてくれる物で自分では書けない、と。
63 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:37:47 ] >>61 毎回 sizeof / sizeof してるコードを見たら お前もそう思うようになるよ。
64 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:37:47 ] //スタイルのコメントは今はCにも取り入れられたぞ
65 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:38:19 ] むしろ B に存在していた // を C で削除したのが問題だったのだ。
66 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:42:14 ] >>47 いや、最初にひどい言語だって言ってるじゃん。
67 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:44:14 ] 配列のサイズ取得って、Cなら普通終端データで渡すもんじゃないの? うざいぐらいsizeof/sizeof使うとか、頭悪いの?
68 名前:デフォルトの名無しさん [2009/01/24(土) 18:47:08 ] だから、sizeof/sizeofのマクロすら標準で無いからウンコだと言ってるんだろ
69 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:49:21 ] だからそんなもん必要になる場面が多い時はコードを見なおせと言ってるんだろ
70 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 18:57:51 ] 69の言う通りだな。
71 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:04:24 ] sizeofってことは静的配列だろう。たかが静的配列のアクセスで あちこちでsizeof/sizeofしてるってことは明らかにダメなコードだな。 後で動的配列に切り換えたとたん全部書き直しになるし。
72 名前:デフォルトの名無しさん [2009/01/24(土) 19:06:26 ] 動的配列のサイズを取得するマクロすら標準で用意されていない C/C++ は両方ともうんこ
73 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:06:28 ] >>70 いや、普通先頭アドレスとサイズを渡すだろw
74 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:14:20 ] 普通、配列のサイズは変数で持ち回るだろ mallocはsizeof(要素の型) * 要素の数 でやって、あとは先頭と要素の数を持ち回る。 sizeof(配列)/sizeof(要素の型)で配列の要素数なんて、 学生の書くコードだよ。 プロがやったらちょっとそれはw って感じ あと//のコメントもCでやると素人臭いな。 VCSにコミットするまでに//のコメは消しとけよって感じ
75 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:15:19 ] >>72 CはともかくC++の場合マクロで用意されてたら怒るけど。つvector
76 名前:デフォルトの名無しさん [2009/01/24(土) 19:16:46 ] プロ プロ プロ VCS VCS VCS
77 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:19:50 ] あれ?このスレにはちょっとレベル高かった?VCS
78 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:22:00 ] 相変わらず、レベル高けーな
79 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:36:19 ] 70>> >>73 sizeof/sizeofで固定長の配列の要素数を得るコードをいっぱい書くなと言いたかったんだけどなぁ。 >>74 sizeof(配列の識別子)/sizeof(配列の識別子[0])の方がいいと思う。 古い人間だからかもしれないけど//は使わないなぁ。/* */と#if 0 #endif使っている。
80 名前:デフォルトの名無しさん [2009/01/24(土) 19:45:04 ] #if 0 /* //の方が便利じゃん。 */ #endif
81 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:46:04 ] /* */ はともかく #if 0 #endif は頭が固すぎるな
82 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:51:02 ] >>81 >#if 0 #endif は頭が固すぎるな イマドキはどう書くんだい?
83 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:53:29 ] >>82 /* */ しか使わん。今時コメントバイナリに埋め込む馬鹿コンパイラなんて使わんし。
84 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:53:32 ] >>82 /// <summary> /// いまどき /// </summary> /// <param name="val"></param> /// <returns></returns> public int func(int val) { }
85 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:58:12 ] >>83 いまどきの人はコメントを含むコードもコメントで囲むのかね?
86 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:01:52 ] いまどきの人はコメントがあるごとに区切ってコードだけをコメントアウトするんじゃないかね?
87 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:02:03 ] >>85 なんか困る?
88 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:03:19 ] >>87 どこが困るのかわからん奴はVBで遊んでろ Cに近づくな
89 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:07:26 ] なんだ説明できないのか。
90 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:09:13 ] 説明のヒントならとっくに出てるよ おまえのスキルが低すぎて気づかないだけだ
91 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:10:24 ] で、自分では説明できないんでしょ?
92 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:23:02 ] >>75 お前は全ての配列を vector で動的に確保するというのか
93 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:26:29 ] どいつもこいつもバカばっか。 実力のある人だけが、C言語でプログラミングして、実力のない人は、さっさと他の言語にいってくれよ。 そうしないと、じじいの目からビームがでるよ。 ネストコメントだと思うけど、いまだに入らないんだ。 自作言語で/+ +/をネスト可コメントにしたこともあった。 //(スラリコメントと名前つけている)は、C99からだからC89でもコンパイルが通るように使わないことにしている。
94 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:28:43 ] ネストコメントなんてコメントアウトでしか使わないんだから #if 0 〜 #endif で良い
95 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:31:10 ] >>93 から異臭が漂ってるな
96 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:32:26 ] >>92 >動的配列のサイズを取得する
97 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:34:14 ] 2chで段落の先頭にスペース入れてる人3年ぶりぐらいに見た。
98 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:35:55 ] >>93 あんたと同類みたいな人も居るみたいなのに「どいつもこいつもバカ」とは適当すぎやしないか?
99 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:39:04 ] >>96 動的配列に対しては配列数を取得するマクロなんて何ら意味が無いだろw
100 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:40:57 ] いや、だからそういってるんだけど。
101 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:42:02 ] いってねーよw
102 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:43:20 ] なんだ、>>72 へのレスだったのか。 そりゃねーわ。
103 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:43:29 ] 文盲たん?
104 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:47:55 ] とりあえず、リーヌスが腕のいい釣り師ってことはわかります。
105 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:58:11 ] 教祖様がPHP叩いてた時を思い出した
106 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:03:37 ] C++ でまともなコードを書けない奴は C でもまともなコードは書けない
107 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:12:17 ] Cで芸術的で官能的なコードが書ける人は、C++でも書ける。
108 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:12:36 ] >>106 ということは、C++ではまともなコードが書けない といっているリーヌスはCでもまともなコードを書いてないと。 リーヌス涙目w
109 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:15:44 ] C++ でまともなコードが書けない人=あまり勉強をしない人。 こういう奴は言語を問わずまともなコードは書けない。
110 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:21:59 ] C++のクラスがCの構造体より優れてる所って何かある? 機能がいっぱい付いてるのは知ってる その全てが複雑な動作と無駄なオーバーヘッドと不可解なバグの発生に貢献してるのも知ってる
111 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:27:09 ] コンストラクタとデストラクタがあるだけで天と地の差がある。
112 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:33:12 ] クラスのインスタンスはレジスタ渡しされる実装が多いから Cの構造体を関数に渡して処理させるより速いぞ。 仮想関数だって結局関数ポインタなりswitchなりに変更しても オーバーヘッドは極端に変わらん。
113 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:34:16 ] デストラクタは、まあ確かに役に立つかな C++プログラマがリソースの管理が出来ないのはデストラクタに頼りすぎだからだろうし コンストラクタは罠の塊だろ 死んだ方がいい
114 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:34:53 ] そんなだからCプログラマは変数の初期化忘ればっかするんだよ
115 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:34:58 ] メンバ関数は時々便利かな。 演算子オーバーロードは絶対使っちゃダメだな。 継承?仮想関数?そういうのも無視、無視。
116 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:35:26 ] >>110 C++には糞のような機能もすばらしい機能も山ほど付いているから、それらを取捨選択する能力が必要
117 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:37:39 ] 継承は純粋な悪であって、利点は存在しない そのことにC++コミュニティもようやく気付き始めてコンポジション(笑)を推奨し始めてる 結局Cで遙か昔からやってきたことに戻ってきた
118 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:37:40 ] >>113 C++は例外があるから デストラクタなしにはまともにリソース管理できないんだよ。
119 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 22:56:14 ] >>117 C++は静的型があるから 継承なしにはまともにポリモーフィズムできないんだよ。
120 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 23:00:36 ] 本当にLinusが言いたかったことはひとつ RUBY最高 これマジ
121 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 23:10:39 ] それはないわ
122 名前:デフォルトの名無しさん [2009/01/24(土) 23:29:07 ] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ そんなことよりyahooきっず「どんな''ジャンボ''が食べたい?」に投票しようぜwwwwwwwww ジャンボピーマンを一位にして餓鬼共を泣かせようwwwwwwwwww 現在1位 yahooの工作開始までに2位のたこ焼きを突き放す kids.yahoo.co.jp/ _人人人人人_ >鶴職人募集中<  ̄ Y^Y^^Y^Y^ ̄ ↓本スレ takeshima.2ch.net/test/read.cgi/news4vip/1232801214/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
123 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:11:01 ] CStringのない環境で文字列扱えないっすよwww
124 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:14:05 ] std::string 使えよ
125 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:14:59 ] 昔触ってた時は文字列クラスすらなかったな。 RTTI周りはちょっとは強化されたんだろうか。
126 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:32:07 ] 1行目と2行目って関係あるの?
127 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 00:51:29 ] 正直、STLとboostとQtがあれば出来ないことはないな… コンソールからCGIからGUIまで汎用性&実用性最高水準で書ける言語なんてこれぐらい。
128 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 01:13:50 ] >>127 若干、器用貧乏な気もする。 >>117 相変わらず継承を推しまくるJavaなんかよりはましだ。
129 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 02:45:34 ] Linusは実は2chネラー、間違いない!
130 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 03:48:38 ] >>129 あながち、OS論争の時もnetnewsでやってたし、2chの技術系板のさきがけみたいな 気はしないでもないな。
131 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 06:04:57 ] >>117 継承が悪なら、基本ライブラリはなんで継承使いまくってるの?
132 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 06:31:16 ] >>131 標準ライブラリを作っていた頃はよく分かっていなかった。 localeまわりのグダグダとかauto_ptrとかもそのせい。
133 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 06:38:33 ] >>132 いや、Javaやsmalltalk、LL言語でも継承使いまくってるじゃん それに最近出来てるライブラリも継承使いまくってるじゃん?こういうのも悪なの?
134 名前:デフォルトの名無しさん [2009/01/25(日) 07:21:52 ] 底辺プログラマってさ、グラビアアイドルが騙されるのと同じだよな。 芸能事務所解雇と同時に事務所所有のマンションを追い出されたりして。 いつ自分もそうなるかわからないし、そうなったらかわいそうだよな。
135 名前:デフォルトの名無しさん [2009/01/25(日) 07:31:52 ] Linusの煽りの激しさと釣りテクニックの巧妙さを考えれば2CHで修業を 積んだと考えたほうが合理的だろうな。
136 名前:デフォルトの名無しさん [2009/01/25(日) 07:35:12 ] なんて情熱的な煽りをする奴なんだ!クレイジーだぜ! などと思ったものだが、写メ見て幻滅した記憶がある。 ただのヲタじゃん。
137 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 08:59:54 ] こいつってマイクロカーネルも批判してたよね。
138 名前:デフォルトの名無しさん [2009/01/25(日) 09:02:36 ] 誰このLinusとかいうコテハンは?
139 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:07:04 ] >>47 C++&COMでドライバ作るわけだが
140 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:32:33 ] >>137 実際マイクロカーネルはクソだったじゃん
141 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:33:48 ] ゲームをコマ落ち無しでしたいアホが多すぎるからだろ
142 名前:デフォルトの名無しさん [2009/01/25(日) 09:39:51 ] このスレには >>135 や >>136 など、高いユーモアのセンスを持った 人間が沢山いるな。
143 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:43:47 ] デバイスドライバ作っても給料は安いままだよな・・・ 何の技術も持ってない奴よりも俺の年収の方が低いなんて・・情けないよな・・・
144 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 09:47:35 ] >>143 ヒント: 需要と供給
145 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 10:04:19 ] >>143 何の能力も無いまま広告代理店だの株屋だのに勤めてる奴らは俺らより年収高いぞ。 歴史に残る天才が貧乏だったケースは無数にある。 年収=能力じゃないんだよ。 俺らはポインタも配列も怖くない、メモリリークなんていうバカなバグは出さない、 そこらの駆け出しプログラマとは格段にレベルが違う、その矜持だけでいいじゃないか。
146 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 10:31:39 ] 確かにヘボな奴がメインでC++で組む位ならCでやらせるな C以上の罠てんこもり言語だし
147 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 11:26:59 ] linusの言いたい事は解る。 自分の理解してる機能だけ使えばいいのにな。 >>143 日本のプログラマは給料安くてやってられね。 使える友人増やして、会社起こすしかないよ。
148 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 11:27:21 ] どうでもいいけどマ板でやって欲しいな
149 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 11:34:15 ] どうでもいいことなら黙ってろよ
150 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:00:44 ] >>143 金を得るという技術が無いだけでしょ? 金が欲しいならそっちの技術も磨けばいいじゃん。
151 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:05:54 ] Dだろ
152 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:40:22 ] C++とWinに手を出したら人間駄目になるよ。 麻薬だよ本当。
153 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:44:56 ] Objective-C & Mac OS X だよな。
154 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:59:34 ] Objective-Cなんてドうんこだろ
155 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:06:38 ] >>154 どこの部分が悪いか言える?
156 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:06:45 ] >>150 そっちの技術に興味がないけど金は欲しい …ってのが大半なんだよな。エンジニアって…
157 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:12:36 ] どうでもよくないのでマ板でやって欲しいな
158 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:14:02 ] >>155 構文が汚い
159 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:40:20 ] C言語って、stlとかboostとか使えんの?
160 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:41:14 ] つかえないよ
161 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:45:07 ] 識別子としてなら使えるよ
162 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:47:08 ] #include <stdio.h> int main(void) { int stl = 0; int boost = 0; printf("%d, %d\n", stl, boost); return 0; }
163 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:26:24 ] クリティカルなところはC 普通はLL言語つかってほうがいいわ。
164 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:47:35 ] 全然関係ない個人的な主観の話でいうと、LL言語という表記がキモい。 見てると頭痛が痛くなってくる。
165 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:49:57 ] 病院行けよ
166 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:51:30 ] 例えも理解できないのかわかってて返してるのか
167 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:54:32 ] 理解を分かってるよ。 LLかLW言語と言えってことだろ。
168 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:57:08 ] そういうくだらない所にこだわって いちいち突っ込み入れて話を中断させる奴って小物ばっかりなんだよな。
169 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 14:59:58 ] よしじゃぁウォーニングとワーニングについて議論 しなくていいな
170 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:01:08 ] じゃあ、「C言語」で。
171 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:02:19 ] そのまえに「リナックス」と「ライナックス」と「リーヌクス」をハッキリさせようぜ。
172 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:16:56 ] >>168 それはお前が大物と話す機会のある立場に居なくて、 且つしょっちゅう言葉を間違えて突っ込まれる人生送ってるだけだろ。
173 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:17:56 ] 大物(笑)
174 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:26:35 ] >>173 脊髄反射乙
175 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:26:40 ] >>160 Boost.Preprocessorは使えると思う。
176 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 15:59:53 ] 待て待て、charはチャーなのかキャラなのかシャーなのかで
177 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 16:08:01 ] シャーだろjk
178 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 16:22:38 ] シャアの方がかっこいい
179 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 16:47:56 ] gitのすばらしいコードってどこでみれるかな
180 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:01:56 ] ちゃー・アズナブル
181 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:08:20 ] でも以下の事実は認めざるを得ないな。 ・Linuxは世界で唯一成功したといえる非商用OS ・gitはRCSのなかで一番快適 ・C++製アプリは規模だけでかくて質の悪いものが多い (採用実績はあっても成果実績が伴なっていない)
182 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:22:30 ] >>181 > ・gitはRCSのなかで一番快適 ほんとかね? 試してみようかね。 > ・C++製アプリは規模だけでかくて質の悪いものが多い てめこの、ゲーム屋なめんな。
183 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 19:37:58 ] MercurialなんかPythonだし、バージョン管理システムなんて、diffとか一部の思い処理意外は LLで書いても十分って気もするけど。
184 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 20:32:32 ] >・C++製アプリは規模だけでかくて質の悪いものが多い >>33 確かに
185 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:09:30 ] 確かに。 そもそもC++で書いてると、無駄に規模が大きく成ってしまう 気がする。言語版Multicsの再失敗だな。
186 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:37:51 ] COOLとかPP使えば C++もCも大して変わらない。 結局、 作法が統一されてるC++で書いたほうが楽でスマート。
187 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:45:39 ] www.sage-p.com/process/cool.htm COOLがC++かわらないって、それはないだろ。
188 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:47:55 ] this をうっかり使うと C++ から使えないので self にした方が良い
189 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 23:56:10 ] いや、一人で全部完成させて一生一人でメンテするならC++でも何でもいいって。
190 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:01:32 ] ここで大胆ながらも核心をついた発言をしてしまうと HSP最強、ということになりかねない流れだな。
191 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:03:05 ] そもそも技術者育てる力も無いのに 初心者歓迎!なんてやってる会社が多いのが問題。 そう言う所で育ったPGはひどいことになる。
192 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:31:32 ] その初心者にC++チーム組ませて地獄をみたプロジェクトならぬディスジェクトが山のように…
193 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 03:28:06 ] XtとかMotifとかを生で触った事があって、Cでオブジェクト指向GUIプログラミングを をやると、どんだけ酷い目に遭わされるか知ってると、C++への感慨も 変わってくると思う。
194 名前:デフォルトの名無しさん [2009/01/26(月) 11:25:07 ] twitter.com/cpp_akira
195 名前:デフォルトの名無しさん [2009/01/26(月) 11:28:25 ] >>194 status/1148031371
196 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 14:18:36 ] なんかウンコ漏らしちゃったよ(´ω`)
197 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 14:57:28 ] ウンコはウンコしない
198 名前:デフォルトの名無しさん [2009/01/26(月) 15:13:24 ] >>191-192 あるある!!!
199 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 15:16:28 ] C++でGUIアプリの開発は悲惨の一言だな。 言語仕様が硬直的でまともにイベントディスパッチできねぇし。
200 名前:デフォルトの名無しさん [2009/01/26(月) 15:19:11 ] ゲーム開発以外はもう全部Cでいいよ。
201 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:30:25 ] ゲームこそCで十分だろ。アセンブラでも良いぞ。
202 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 17:41:06 ] >>193 ノシ 「こんないーもんあるじゃねーか!C++使わせろよ!」 と思った。
203 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:05:32 ] マフィアなどが横行する裏の世界では、発見されるとまずい遺体を硫酸プールに 沈めて溶かし、証拠を消すなどという噂話がありますが、実際に科学薬品で遺体を 処理したことがあるという人が警察に捕まったそうです。 詳細は以下から。 BBC NEWS | Americas | Mexico man 'dissolved 300 bodies' メキシコ警察に逮捕された男・Santiago Mezaは通称「シチュー・メーカー」。Mezaは 薬を扱うギャングのために、対立するギャングの遺体を週600ドル(約5万円)の 賃金で苛性ソーダを使って処理したとのこと。処理した遺体は300人にもなるそうです。 10年以上遺体処理を続け「何の感情もなかった」と話すMeza Mezaは犠牲者の遺族と話す機会があるならば「謝罪したい」と述べています。 アメリカとの境界に位置する都市ティフアナでは、ドラッグを巡る争いで700人以上の 死者が出ており、メキシコ軍はMezaの言っている話は真実であると考えているそうです。 ブラック・ラグーンに出てくる始末屋ソーヤーのような人物ですね……。 gigazine.net/index.php?/news/comments/20090126_dissolve_300_bodies/
204 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 20:08:13 ] >>203 >科学薬品 ・・・
205 名前:デフォルトの名無しさん [2009/01/26(月) 22:06:26 ] twitter.com/finalfusion/status/1148899157 twitter.com/finalfusion/status/1148902866 twitter.com/cpp_akira/status/1148906759 twitter.com/finalfusion/status/1148913004 twitter.com/cpp_akira/status/1148916130 twitter.com/wraith13/status/1148916782 twitter.com/cpp_akira/status/1148921926 twitter.com/wraith13/status/1148931187 twitter.com/wraith13/status/1148932048
206 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:24:43 ] >>205 自分らは陰口を書くのはOKってスタンスなんだから、同じ土俵にたてとか、2chどうこう言うなって感じだよなぁ。 しかも>>194 とか、ほぼスルーされてるのに。 まあ、どうでもいいけど。
207 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 22:28:28 ] >>206 かまってちゃんを相手にするなよ・・・
208 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 04:18:33 ] LinuxにはHSPのような登竜門的な言語がないから いつまでたってもフリーソフターが育たずにWinに遅れをとるんだよ…
209 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:14:06 ] >> フリーソフター GNUの概念と真っ向から反するからそりゃね
210 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:22:58 ] >>208 HSPってwww
211 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:23:15 ] >>207 「どうでもいい」ことを一々嫌みったらしく書き残していく>>206 もかまってちゃんだから、 相手にしないほうがいいよ。
212 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:58:32 ] cは金にならないからしかたない
213 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 09:10:44 ] なるよ もっと視野を広げろよ
214 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:27:36 ] その点C++はトラブルが出つづけるので ずっと金になるというのはあるな まぁ誰かは損してるわけだが
215 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:00:06 ] バージョン決め打ちできるところは良いなあ
216 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:11:25 ] フリーソフターって初めて聞く用語だけど、一般的なの?
217 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:39:15 ] 略してフリーターってよく言うじゃん。
218 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:41:14 ] >>206 はてな村やtw村での生活が長いと ああいう勘違いしちゃうのかねえ 回り見えてないねえ
219 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:59:57 ] >>208 perl(のようなもの)とか、shスクプリトとか。
220 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:16:17 ] >>193 XtとかMotif触ったことないけど、kernelのファイルシステムや ネットワークプロトコルスタック程度の使い方なら、Cのオブジェクト指向 っぽいプログラミングで十分だと思う。 逆にC++みたいなレイヤを一つはさむと、逆アセンブルしたコードが Cに比べるとわけわかめなんで、panicしたとき調査しずらい。
221 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:20:18 ] >>199 それは、入力受け付けるのにコールバック関数を必要とするOSに、 薄いフレームワークをかぶせてるからであって、言語のせいではないと思われ。
222 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:41:53 ] >>206 自分でスレをtwに晒しておいて、自分のtwの発言が2chに晒されると「同じ土俵に立て」とか頭おかしいな。
223 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:43:02 ] >>219 なに、バールのようなものだと?
224 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:26:42 ] >>220 XmToggleButtonGadgetGetState()なんて関数名見たら、それだけでC++使いたくならない?w
225 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:52:05 ] むしろメソッドもネームスペースも無いからC使う。 一目ですべて分かる。
226 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 02:03:37 ] それじゃC以外使えないよ。
227 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 10:59:47 ] >>224 しかも Gadget と Widget で関数名違うしな。 で、なんかの派生クラス作ろうとしたら vtable 自分で管理しなきゃいけなくて、益々C++ が欲しくなる。
228 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 11:02:25 ] ん、なんかごっちゃになってる。 × vtable ○ クラス構造体の関数ポインタ
229 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 11:11:41 ] Cはアセンブリ言語の違いを吸収するが、 C++はオブジェクトシステムの違いを吸収できない、と
230 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 12:19:59 ] >>221 C++ってdelegateはどうやって実現してるの?
231 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 12:32:24 ] 燃料投下 ttp://hp.vector.co.jp/authors/VA000092/jokes/strup.html
232 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:15:28 ] 化石燃料ですね、わかります。
233 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 16:45:22 ] Союз Советских Социалистических Республик
234 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 17:06:33 ] >>230 C#的なdelegateなら、適当なオブジェクトを受け渡し、 そのオブジェクトの特定のメンバ関数(典型的にはoperator ()という名前の関数)を呼ぶという取り決めでやり取りする。 ようするにダックタイピングが最近の流れ。 昔からある奴だと、仮想関数使ったりマクロで振り分けたりというのが根強い。
235 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 18:16:26 ] 関数ポインタとマップ
236 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 18:25:33 ] >>235 Windowsだとコールバック関数にこちらから1つ値を渡せるから、 そこにオブジェクトへのポインタを仕込めるのでマップの出番は無いんだけど、ほかはそうでもない?
237 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:13:04 ] >234,230 オブジェクトへのポインタと、メンバ関数へのポインタでもできるかと。 ちなみにメンバ関数ポインタと言うのはこーいうの。 // メンバ関数ポインタ void (CHoge::*pFunc)() = CHoge::func; // .* 演算子でのアクセス (obj.*pFunc)(); // ->* 演算子でのアクセス (pObj->*pFunc)(); .* と ->* は . や -> と別の演算子として扱われ、 個別にオーバーライド可能ってのもポイント。
238 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 23:29:28 ] 普通はBoost/TR1のbindとfunctionでラップして使うけどな。 そういやBoostにはSignalsなんてのもある。
239 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 06:13:11 ] >>238 >>1 でそのboostもstlも一緒に馬鹿されてる
240 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 06:58:29 ] boostもstlもパラノイアを感じる どうしてそこまでしてC++を使おうとするのか分からない
241 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 09:47:15 ] case insensitive な人が何か喚いている。
242 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 12:32:52 ] STLは素晴らしく便利だと思うが。 ていうかSTLを使わないC++はかなりウンコ。それならCでキレイに書いたほうがいい。
243 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 12:54:28 ] C++のiostreamを考えた奴は、アホだと思う。 後発の言語で、iostreamをパクったのって有るのか?
244 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 12:57:36 ] Cは言語機能がちょっと貧弱すぎるせいで、ぐじゃぐじゃなマクロで 取り繕おうとしてしまうケースがしばしば見られる気がする マクロはウンコ
245 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:05:34 ] >>240 Cは貧弱で、 プロジェクトで作ったライブラリは顧客の所有物となれば、次のプロジェクトで流用できない。 別々のプロジェクトから集まったチームのためにvectorやらなんやら設計しなおすのもバカらしい。
246 名前:デフォルトの名無しさん [2009/01/29(木) 13:05:40 ] C++をjavaとかC#と比べる奴はIT土方。 みんながみんな開発効率重視の使い捨てPGじゃない。 とりあえずC++の設計と進化くらいは流し読みしとけ。
247 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:09:57 ] >>243 あれは酷い。
248 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:22:54 ] C++はいわゆる「C++スタイル」で書くことに結構こだわる俺でも iostream系だけは使ってない。
249 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 13:46:15 ] iostreamは、技術デモとしては面白いよね、あはは ってレベル。 標準ライブラリとして紛れ込んでるのは、たぶん、事務処理ミス。
250 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 14:16:48 ] genericなライブラリもdelegateも言語仕様として素直にサポートすりゃいいのに 何でもかんでもtemplateで無理やりやろうとするところがバカっぽい。
251 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 14:17:08 ] ATLで十分
252 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 14:36:50 ] 古いC++の本読むとクラスこそC++の光、継承こそC++の真髄みたいに書かれているのに ちょっと前に出版されたC++ Cording Standardsには なるべく継承はヤメれ、friendもほどほどにねみたいに書かれてる。
253 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 15:38:35 ] friend なんかいらないだろ。
254 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 15:44:55 ] というか、そこまで継承を使う必要に迫られたことがない。 オブシコの真髄はコンポジットにこそある、 とC++触りはじめて3日ぐらいで気付いたっけなあ。 これぐらいのセンスがないとC++はむずかしいね。
255 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:51:36 ] なるほどねぇ、自分は本に書かれたままに受け取るしか出来ないからC++には向いてないかな。 でも、C++面白いんだよね、純粋に。
256 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 21:18:30 ] Cのコンパイラより C++のコンパイラの方が なんか速そうな感じがする。
257 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 21:18:57 ] C++は、要らん苦労を背負っときながら、でもこうするとちょっと楽だよね っていう感じで、3歩下がって2歩進むことばかりに見える
258 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 21:20:50 ] ttp://www.hsjp.net/upload/src/up57929.jpg 販促チラシ
259 名前:デフォルトの名無しさん [2009/01/29(木) 21:53:53 ] >>243 javaとc#でなんか同じような名前のがあったような。
260 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 21:55:54 ] いやいや、名前にStreamって付くクラスがあるだけ。 どっちも演算子で入出力なんてやらないよ。
261 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:05:20 ] i/ostringstreamはかなりイケてると思うんだがどうよ。
262 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:32:32 ] 演算子を使ってるのはべつにいいけど、書式指定の使いにくさがどうにも。
263 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:35:26 ] printf 風の指定もできればいいのに boost なしで
264 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:11:28 ] うん、俺もout系のstreamは、sprintfというのが用意してあったらかなり違ったと思うね。 scanf系のアドレス渡しとかフォーマットミスが嫌われた要因の一つだろうから in系はともかくとしても。 あと、Cが文字列型を持たないのを引きずって、文字列の扱いが中途半端だったね。 もちろん、C++がAT&Tで生まれた直後から多数の「文字列class」が生まれてしまったのも原因だけど 「静的なstring」を用意することが出来ない。 だから、f(const string&)を呼び出すときにf("abc")とすると 毎回コンストラクタとデストラクタが呼ばれるってのもどうもね。 char*をやめて全部stringにしろといわれても、外部やAPIとのやりとりではそうも行かず。
265 名前:デフォルトの名無しさん [2009/01/30(金) 00:14:23 ] 普通イテレータ使うだろ。
266 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:28:33 ] ま、あのJavaでさえ、途中からとはいえprintf()様の軍門に下ったからな。
267 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:31:57 ] printfは神
268 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:33:34 ] printf っぽいものでも 型安全にする事は可能だからな。 ostream は今からでもそれをサポートすべき。
269 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:47:23 ] もう誰も新しい整形方式でprintfを倒そうという愚かな野望を抱かなくなったこと 結果としてprintfの優秀さが再認識されて今多くの言語でサポートされて使えること これらがiostreamの惨めな失敗によるものなのだとしたら あの糞ライブラリにも意味があるのかもしれない
270 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:50:53 ] >269 不遜なC#がprintf()様に微妙に反抗してます。
271 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:04:00 ] c#のあれは最初からprintfの軍門に下っている iostreamのようにprintfへの挑戦者ではないだろう
272 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:14:59 ] printf対ostreamは天地の差だけど scanf対istreamならどっこいどっこいだと思う
273 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:57:02 ] というか、上級のC++グラマでC++そのまんま使ってる奴なんているか? そのクラスだと独自マクロ作ってC++なんかドライバ扱いなのが普通だと思ってたが。
274 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 02:14:13 ] つまり273は上級だと
275 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 02:25:51 ] >>273 www.gnu.org/fun/jokes/helloworld.html
276 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 06:07:10 ] >>275 Seasoned Hacker % cc -o a.out ~/src/misc/hw/hw.c % a.out Hello, world. ワロタw
277 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 11:52:04 ] Cコンパイラってなんであんなコンパイルが軽いの? 手抜きしてそう
278 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 12:17:23 ] 企業に例えるとCは昔のGoogleでC++は今のGoogle
279 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 12:33:57 ] >>277 C++がLALRでないからじゃなかったっけ
280 名前:デフォルトの名無しさん [2009/01/30(金) 14:50:45 ] 構文解析の複雑さくらいじゃ、体感出来る程の違いは生まれないんじゃね? テンプレートの実体化とかオブジェクト(vtable)のレイアウトを決定するのに時間がかかりそう
281 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 14:55:29 ] 新人医者有受研修、教授被教尿道挿管。 医者挿入四苦八苦、多苦労後無事挿入。 然教授苦笑曰新人、「汝挿入場所相違也」。 医者赤面至急欲除、尿管微動不得取外。 医者必死謝罪患者、然患者喜々誤挿入。 教官不思議聞患者、曰「快感多旦那以上」。
282 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 16:44:44 ] >>278 なんか妙に納得。 昔のGoogleは素気ないがCoolだったな。 いまじゃすっかりチンドン屋になってしまったが。
283 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 16:48:51 ] >チンドン屋 ヤホーほどじゃない。
284 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:13:34 ] 経済学的にはC++のほうが良い言語なのかなw
285 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:18:46 ] 経済学的に考えると、 世の中の機器からチンドン屋になっちゃったんだから、 チンドン言語で書くのが効率的じゃね?
286 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 17:23:11 ] 自然な思考で当たり前のプログラミングを〜Bjarne Stroustrup氏との対話〜 codezine.jp/article/detail/3370
287 名前:デフォルトの名無しさん [2009/01/30(金) 20:35:43 ] 123.writeboard.com/27c7a247acc07351e/login pass:pgtwit
288 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 00:58:57 ] C++からCにいって気付いたこと。 デフォルト引数も関数の多態性もないせいで ライブラリの関数とかで無駄な引数いっぱい… 不使用の引数でもわざわざダミー変数用意しなきゃならん。 Xlibとかめんどい。
289 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:32:05 ] 欠点が明確なのは、欠点がなんだかよくわからないよりずっとましだ。
290 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:55:34 ] >>288 君はC++にも不適格だと思うぞ
291 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 01:59:44 ] なこたあないん。
292 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 02:08:28 ] C++プログラマって、どこまでも行っても下がいる 言語仕様がクズを生みやすいってことだと思う
293 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 02:09:49 ] それはCでも同じ
294 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 08:41:24 ] >>288 君は「C++の設計と進化」を読んだ方がいい
295 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 10:31:18 ] 変数宣言は一番上だけってのがきもい
296 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 10:35:09 ] >>295 kwsk まさか、ソースコードの一番上で宣言するような言語があるのか?
297 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 10:42:02 ] int func(a, b, c) int a; float b; void* c; { return a+(int)b+(int)*c; }
298 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:05:15 ] >>295 ヒント: スコープ
299 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:12:19 ] >>297 なにこれ、釣り? AT&Tでは、そんな書き方できたんだ、知らなかったなぁ。 >>void* c; >>{ >> return a+(int)b+(int)*c; 参考になりますた。C言語を使いこなせない人は、ここに立ち入り禁止ね。 C++を使う人も来ないでください。気持ちが悪いです。
300 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:19:03 ] >>299 お前が来なきゃいい。
301 名前:デフォルトの名無しさん [2009/01/31(土) 11:30:05 ] 「C++プログラマはウンコ。寄ってくるな」
302 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 11:31:58 ] それはLinusが言ってるだけで、このスレに来ることは問題ないから。
303 名前:デフォルトの名無しさん [2009/01/31(土) 11:35:15 ] 「C++プログラマは犯罪者。消えろ」
304 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:11:16 ] *(int*)c じゃないのか?
305 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:12:48 ] C++プログラマをいじめすぎ
306 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 13:12:52 ] それでいいよ。
307 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 14:07:16 ] 追い詰められたC++はLispを取り込んで最終形態に・・・
308 名前:デフォルトの名無しさん [2009/01/31(土) 15:14:07 ] C++ の作者にセンスがなかったと言わざるを得ない。 作者が元凶であった以上、C++ は元々消えていく運命にあったのだね。
309 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:18:41 ] Objective-Cの糞構文を見たら、C++の構文は神に見えるよ
310 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:30:20 ] >>294 そういう問題でもない。
311 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:43:46 ] >>268 >printf っぽいものでも >型安全にする事は可能だからな。 どんなふうにすればいいの?
312 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:46:55 ] >>220 >逆にC++みたいなレイヤを一つはさむと、逆アセンブルしたコードが >Cに比べるとわけわかめなんで、panicしたとき調査しずらい。 わざわざご自分の無能をおさらしにならなくとも よろしいのに。
313 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:47:31 ] int i; float f; MyClass c; printf("%(int) %(float) %(MyClass)\n", i, f, c);
314 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:57:04 ] それどこのオレオレコンパイラの仕様?
315 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:02:55 ] >>309 どっちも糞
316 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:07:05 ] HSP…… こうなってはもうHSPしかないのか……
317 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:09:11 ] printfの安全性は、コンパイラが賢くなる事で解決。
318 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:13:03 ] プログラマブルプログラマはCを使う。
319 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:14:53 ] C++じゃないけど、正規表現みたいにprintf書式もリテラルを作れればいいのに、と思う。
320 名前:デフォルトの名無しさん [2009/01/31(土) 16:17:54 ] そもそも、printfとstd::coutって実質的に何が違うんだろ? std::coutで特に記述が簡素化したとも思えないんだけど。 何を思ってこんなもん作ったんだ?
321 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:23:33 ] オペレーターオーバーロードをしたかっただけだろ。
322 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:26:47 ] >>320 long longが%I64dか%lldかで悩む必要なく、doubleに%lfを使うコードを見てうんざりする必要がなくなった。 ただ、それを実現したいだけなら、Javaみたいにprint(x)でいいわけなんだけど。
323 名前:デフォルトの名無しさん [2009/01/31(土) 16:44:22 ] おーできない君が群がるスレですな 結構活気ありますねw
324 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:46:13 ] ですな
325 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:47:02 ] >>320 可変長引数を間違えるうんこを、救済したかったんだろ。 案の定あらゆる所で漏らしまくる、うんこ野郎が集まってきたとw メモリの管理も出来ないゴミを前提にしてるし仕方ないさ
326 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 16:50:34 ] というかマ版用スレじゃんこれ
327 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:06:12 ] >>320 オブジェクト指向のデモ的な側面があったんだろうね 「ほら、オブジェクト側に処理を任せちゃえば、何も考えないですむんですよ」 「なるほど、楽ですね。でも出力幅とか書式指定したくならないですか?」 「実際のプログラミングではそうだろうね」 「そうすると結局手間は変わらない、むしろ面倒になるのでは?」 「ですよね。まあ、こんなことも出来ますよ、というデモですからねー」
328 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:06:13 ] >>323 出来たつもりになってるうんこ君を笑うスレです
329 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:14:04 ] 俺はデキルスレになってるのが笑える
330 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:44:10 ] iostreamはいい加減に黒歴史化してほしい。 新しい入出力ライブラリ作ってさ。
331 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:53:25 ] C++って仕事でチーム開発で使うとCベースより問題が発生することがほとんどなんだが これを言うとキャリアの浅いやつや責任持ったことのない奴ほど理解できないんだよな。 ここでこういうこというやつは、よっぽど教育がなされてる環境にでもいるのかな。
332 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 17:56:14 ] そりゃあんた、できないと思われることを嫌う連中は理解したがらないよ。 ここで言っている方は、挫折経験でもあるのだろうし。
333 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:20:20 ] できないと思われたくないならやさしいと思っているCを提案されれば飛びつくだろ。 でもそうならない。
334 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:26:28 ] 最先端の現場ではHaskell使っても統一とれるんだから 指揮能力の問題だろうな。
335 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:38:18 ] Cはやさしいかなぁ? VBでいいって言われるならともかく。
336 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:48:23 ] さすがにそのレベルは除外
337 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:49:59 ] 最先端の現場ってどこだよw
338 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:58:28 ] 最戦端の現場
339 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:59:05 ] >>337 xmonad.org/
340 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:07:03 ] これが?
341 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:15:17 ] 初心者から雇う癖に教育しないからそうなる
342 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:16:24 ] C++なんて教育するよりCでやったほうがコスト安い
343 名前:デフォルトの名無しさん [2009/01/31(土) 19:18:37 ] それで現場でいきなりC++やって、訳分からんクラス作ったりするんだな
344 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:20:38 ] だからやらせないんだろ
345 名前:デフォルトの名無しさん [2009/01/31(土) 19:25:57 ] つーかCよりC++の方が便利で楽じゃね。
346 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:30:31 ] つーかC++よりHSPの方が便利で楽じゃね。
347 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:34:45 ] 何が便利で何がラクなのか。素人に抽象化の機能なんか使わせたら コードも動作も抽象化されて修復不可能になるんだぞ。
348 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:35:35 ] 初心者は何も抽象化しないよ
349 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:50:57 ] 抽象化なんて全く必要ないね
350 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 19:53:23 ] このスレC++使いほとんどいないな
351 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:03:25 ] 初心者というかオレ天才的初心者な。 入門書を曲解して謎のコードを大量生産。
352 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:03:57 ] ここまで「スクリプト言語使えよ」という意見ほとんどなし
353 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:17:49 ] >>352 誰も使うなとは言ってない。 問題は、C with スクリプト言語か、C++ with スクリプト言語かだ。
354 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:38:18 ] >>351 K&Rですね、わかります
355 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:11:05 ] 抽象化なんてC++には不向き。 機能に溺れて逆にCのほうが抽象化しやすくなってる。
356 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:20:29 ] それはない。
357 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:24:23 ] 抽象化がほとんど出来ないがために中身がよく見えるC 中途半端な抽象化のせいで中身ダダ漏れだけど肝心な所には触れないC++
358 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:49:38 ] 黙って Haskell か Lisp 使っとけ
359 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:52:54 ] で、お前はHaskell使ったことあるわけ?
360 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 21:58:04 ] main = return "無いよ" >>= putStrLn
361 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:14:59 ] 世の半分程度の人は抽象思考が苦手 その状態でプログラムに手を出す人がいるが、 プログラム向いてないよと言いたい
362 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:15:37 ] どうぞ言ってください
363 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:44:00 ] 論理的思考のできない人多いよね
364 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:44:39 ] 例えば?
365 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:07:43 ] ちょっと抽象的なコードを書いたら読めないとか言われたり
366 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:39:26 ] 抽象的なコードもいいけど むりやりC++で書いた関数プログラミング的なコードを読まされるのだけは勘弁
367 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:57:26 ] C++からオーバーロードを引くけば食いおわった魚の骨のごとくである。 その心は? C++-<< おあとがよろしいようで。
368 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:59:06 ] 計算機を動かすコードに抽象的なんてことがあるだろうか?
369 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:10:21 ] 屁理屈大魔王。
370 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:12:15 ] >>368 計算機を動かすコードには無いだろうね。 でも俺らが書いてるのは、計算機を動かすコードを生成させるコードだから。
371 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:18:46 ] >>368 計算機を動かすコードはすべて抽象的なもの。 抽象的なコードが具体的な電荷や電気信号に変換されて計算機を動かす。
372 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:20:45 ] C/C++で仕事してる俺から見るとJAVAorC#プログラマはC/C++に寄ってくるなと言いたい。 classの宣言と実体を全て.hファイルに記述されてるの見た時、 リアルで('A`)ウヘェーってなった。 3000行超えてるし…誰が管理するんだよ…
373 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:22:10 ] 早めにそれはアカンと言えばいいだけだろw 放置する方が悪い
374 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:23:17 ] そもそも宣言と定義が分かれてるのがクソなわけで
375 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:24:24 ] >>373 > 早めにそれはアカンと言えばいいだけだろw まぁ、初期段階では指摘するチャンスが無かったってこともあるだろう、いろんな事情で。
376 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:26:00 ] 3000行って・・・大した事ないよね?
377 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:27:52 ] Java or C# プログラマが全部そんな人だと思わないで下さい・・・
378 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:27:58 ] 大きなクラスなら.cppもそれくらい長くなることもあるだろ メンバを一覧出来ないってことなら、現代的なIDEならそんなのは表示してくれるし
379 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:28:37 ] ファイル変更時のリコンパイル範囲が問題なんだよ
380 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:34:17 ] C&viの時代からプログラムは組めているのに、IDEがないとまともにかけない言語ってどうなの?
381 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:35:12 ] >>379 Javaは動的解決だけどC++は静的解決って差もわからない奴がC++いじるともう・・・
382 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:47:59 ] 全部ヘッダで3000行ならきついだろ。 例外はBoostの水準のテンプレートライブラリだが、そんなの自分では書かないしね。
383 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:51:36 ] なんだ、書かないんだ。
384 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:51:51 ] テンプレートはどうせ全部ヘッダで書かないといけないから クラス内に全部記述したので問題ない。 (static メンバ変数の実体定義だけはクラス外に書く必要があるが)
385 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:52:59 ] >>372 がテンプレート知らなかっただけってオチ?
386 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:54:33 ] また知ったかが便乗してる
387 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:55:15 ] いいや、Java/C#から来た人間がそんなもの書くわけないだろ。 家に帰ったらC++やりますって偽装でもない限り。
388 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:56:00 ] >>385 それは無いな。
389 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:58:39 ] >>372 必死w
390 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 00:59:38 ] 知ったかが勘違いを押し切ろうとしている
391 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:00:12 ] >テンプレートはどうせ全部ヘッダで書かないといけないから おまえはどんな糞コンパイラつかってんだよ…
392 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:02:00 ] >>391
393 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:02:07 ] export なんて都市伝説です Comeau C++ なんて知りません><
394 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:04:41 ] >>392
395 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:05:59 ] int 392(void){ return >>394 ; }
396 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:06:30 ] ふう。再帰化完了。
397 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:06:39 ] export も知らない素人か・・・
398 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:08:04 ] (void) ってC臭がプンプンするな
399 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:09:47 ] 主要コンパイラにないものを語って悦に入るって・・・
400 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:10:16 ] exportがサポートされていない→糞コンパイラ って、まったくプログラム書かない言語ヲタか何かかな。
401 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:10:22 ] いるんだよね、Cの記述スタイル馬鹿にする奴 単純にCもまともに使えないだけなんだが
402 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:12:17 ] >>391 の使っているコンパイラを紹介して貰いたいところ
403 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:20:58 ] export を知らなくて、ジョークも理解できなかったようだな
404 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:21:38 ] 3000行越えてるからどうこう言ってる奴は とりあえずLinusさんが開発してるカーネルのkernel/sched.cを見た方がいい
405 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:24:15 ] テンプレートに挑んでexportを知らない奴はいないだろう
406 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:24:40 ] c/cppファイルなら別に文句ないぞ。 >>372 の場合、ヘッダに全部書いているのが悪いだけだ。
407 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:30:56 ] ああ、372は「C/C++で」宣言定義を全部.hに書いてるアホがいるって言ってたのか そりゃクソだな てっきり「Java/C#は宣言も定義も一つのファイルに書くから糞」って言ってるのかと思った
408 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:31:53 ] お前・・・ 正直なのはいいことだよ・・・
409 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:33:26 ] >>403 まぁこうなったら「ジョークが理解されなかった」で押し通すしかないのはわかる。
410 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:47:06 ] 宣言と定義が別ファイルに分かれてるだけでもう二度手間というか いまどきありえねーって思う。エッチとCは一緒だろ
411 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:53:11 ] そうかなぁ インターフェースと実装を分けるのって大事じゃない?
412 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:55:07 ] interface があればいいんだよ interface が
413 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:56:42 ] >>410 そんなもん当然IDEが全自動でやってくれるだろjk。 ……って言えるようになってほしいです。
414 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 03:43:12 ] >>381 のいってることが現実に
415 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 08:56:03 ] どっかのえろい人はヘッダファイルを.cppから生成させてたな。
416 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 09:13:46 ] # hoge.h -------------------------------------- template <class T> class Hoge{...}; #include "hoge.h.impl" -------------------------------------- # hoge.h.impl -------------------------------------- template < class T > Hoge::Hoge(){... -------------------------------------- という幹事で、ヘッダの最後にincludeいれて、実装ファイルを読み込ませる方法で 文理させるのが最近の俺の流行り。
417 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 09:20:57 ] 素人質問で悪いんだけど、VC++2008の場合、templateは別として、 ヘッダファイルに関数の定義を書き込んじゃうと、多重定義エラーでない? templateも特化すると多重定義エラーになるし。
418 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 09:27:57 ] #pragma once か インクルードガードやっとけ #ifndef foo #define foo implementation #endif /* foo */
419 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 09:32:57 ] #pragma onceの方はいいんだけど 2008の場合、通常のインクルードガードだと コンパイル単位が違うとエラーが出るんだよね・・・なぜか。
420 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:36:59 ] リンクエラーじゃないのか?だとしたら、そんなの当たり前だ。 上のほうで.hに書く云々って話は、全て、メンバ関数をclass内に書く、という話だと捉えたよ。 少なくとも俺は。 そうすればinline扱いになるし。 まさか「2箇所に書くのが嫌」と言いながら.h内で実装を別途用意するなんて (相互参照とうでなければ)ありえないしね。
421 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:41:27 ] >>417 リンケージについて勉強した方がいい
422 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:47:22 ] こういう人が「自分はC++を使っている」と言うから 「C++プログラマはウンコ」呼ばわりされる原因じゃないのか。
423 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:54:03 ] C++の入門書とかって能天気すぎなんだよ。 多重継承とか演算子オーバーロードとか副作用大きい機能とかを 知ってて使うことが上級者への道みたいに煽る。 いい迷惑だ。
424 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:01:23 ] 入門書には分割コンパイルの原理とか書いてないことが多いからなあ。 グローバル変数の実体は1個しか定義できないとか、そういう基本的なことを知らないまま 「C++出来ます」とか言い切るウンコが増えてきているから邪魔なんだよな。
425 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:01:59 ] >>423 プログラミングの話をしているときに「副作用」をそういう意味で使うのは・・・
426 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:03:56 ] 知っててもなお使うに値するケースかどうか判断する事は 上級者になるのに重要なことだと思うが
427 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:04:37 ] BK厨おつ
428 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:05:59 ] 2ちゃんねる推奨のAccelerated C++には コンパイル単位の話も出てきませんでしたよ^^ っていうか、この本のソースコード、 VC++2008じゃコンパイルできないし^^;;;
429 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:06:28 ] >>426 入門書だと、その判断するということを省いているのがまずいのでは?
430 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 18:10:06 ] >>424 そういうのってリンカの仕事だからな C/C++の範囲外ということで入門書では避けられてる そしてあらゆる言語の入門書がそうやって逃げ回る結果 解説してる本がどこにもないという
431 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 18:14:41 ] >>424 >グローバル変数の実体は1個しか定義できないとか、そういう基本的なこと C++ Coding Standardにも出てくるけど そういうことは「一回コンパイルすればわかる」からねぇ。
432 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 18:45:28 ] >>426 > 上級者になるのに重要なことだと思うが 「入門書」の話ししてるんだけど。
433 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:13:26 ] C++やC#は演算子オーバーロードがあるだけで神 他の言語は設計者が数値計算とか3Dとかやらない文系なのがモロバレ
434 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:26:21 ] っ ほーとらん
435 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:34:08 ] >>431 gccだとオプション次第では分からないことも・・・
436 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:34:11 ] >>430 解説してる本は普通にあるよ
437 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:49:11 ] 演算子オーバーロードが必要だと思うのがよくわからん。 自由に使わせたら可読性下がるだろあれ。
438 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:50:43 ] お前、可読性の意味分かってないだろ
439 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:52:41 ] おまえだよ。
440 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:54:13 ] 型見て演算子の宣言見ないと何やってるかわかんないからな。 自分の中で閉じるなら問題ないかもしれないが自由に触らせるものではないでしょう。
441 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:54:40 ] 定義だろ
442 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:56:44 ] いい加減、カプセル化に慣れようぜ
443 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 20:59:10 ] 隠蔽化って隠蔽内容が完全でデザインに矛盾がなく直観的であることが前提だから 慣れるとか簡単なことじゃないぞ。
444 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:08:36 ] プログラムのセンスない奴は直観をどこまでも拡大解釈するしねw
445 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:16:23 ] 数値型作る場合以外どうせ使わないし、 その場合は直感的になるから問題ないよ
446 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:18:40 ] お前が問題なくても自称できるやつが謎のオーバーロードし始めるんだよ。 C++はこういう問題がたくさんある。Javaでなくなったのにはそれなりの理由がある。
447 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:27:54 ] 結局ジェネリック追加されたし どうなるかは分からないよ
448 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:32:45 ] まぁその程度の低レベルな話は C++ Coding Standard一冊で全部解決。 たった200頁の本だし(ぺらぺら)、 Effective C++やExceptional C++よりはるかに簡単な本だし、 もう必読書ってことで。
449 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:34:04 ] 演算子オーバーロードが要らないと強弁する文系丸出しが続々登場! みんなゲームとかつくらないの? おもしろいよ。
450 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:35:54 ] ああゲームの末端で好きかってやってメインプログラマーに迷惑かける奴か。 つーかレス見る限り個人でしょぼいゲーム作ってる気になってるだけか。
451 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:36:30 ] おれはレベル高いからって言ってる奴はチーム仕事してねーだろ
452 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:37:27 ] プロジェクトの出来は、最もレベルの低いものに左右される
453 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:01:13 ] 本読んどいてでみんなまともにプログラム組めてたらこの仕事天国だよ
454 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:02:57 ] >>452 それはリスク対策が出来ないプロマネがアホなんだろ
455 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:02:59 ] 逆だろ みんながまともにプログラム組めるなら、プログラミングなんてコンビニのバイト程度の価値しかなくなる ほとんどの自称プログラマがカスだからまともなプログラマが食っていける
456 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:06:47 ] プログラムくらいアホでも組める
457 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:16:21 ] Linuxもアホでもかけるんだね。
458 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:25:41 ] Linuxはアホじゃなくてライナス アホはAWK
459 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:28:25 ] Bjarne Stroustrup インタビュー (?) www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
460 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:39:58 ] 10年くらい前のジョーク?みたいだけど根本的な解決を見た事ないな。 むしろ策略を追加してる印象。
461 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:01:39 ] まぁ、自分もカスだから人のこと言えないけど そのカスである俺よりもひどい能力の人が上司だったりしたこともあるので カスはカスで生きる方法があるんだと思う今日この頃。
462 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:02:25 ] まあカスの生きる道がないと世の中死屍累々だと思う
463 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:22:59 ] 最上層と最下層の間の幅が一番小さいのはやっぱりHSPなのか? 一番大きいのはいうまでもなくC++だろうが。
464 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 03:43:42 ] HSPのきれいなソースを見ると才能の無駄遣いだと思うけどなw >>463 が想像するより人によってかなり差がある
465 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 13:20:46 ] >>463 いちいちそんなカス言語を引き合いに出してくれるなよ。
466 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 14:34:28 ] いや、C++の問題点を浮きあがらせるためには その正反対のパラダイムをもつHSPを知ることが先決。
467 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 14:38:36 ] Σ (゚Д゚;)ハッ この流れもしやHSPオンリー?
468 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:19:35 ] >>466 正反対とは?
469 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:29:58 ] マルチパラダイムの正反対…なんだろ。意味不明。
470 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:32:18 ] てか、HSP使いなんていくら頑張ってもC++を マスターすることなんてできないだろうから、 このスレで発言するいること自体間違ってる。
471 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:59:18 ] するいる
472 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 16:30:40 ] >>463 > 最上層と最下層の間の幅が一番小さいのはやっぱりHSPなのか? > 一番大きいのはいうまでもなくC++だろうが。 人によってそんなに差がある言語は困るんだよ ウンコプログラマーには分からんと思うけど
473 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 18:19:14 ] そもそもなんでHSPが出てくるのかわからないのだが…
474 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:29:46 ] >>472 誰と戦ってるんだお前
475 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 19:58:01 ] >>474 C++ と、じゃね?
476 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:58:06 ] TDNのHot Soup Processor
477 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:59:45 ] アツー!
478 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:40:03 ] C++: 複雑・高機能・マルチパラダイム・初心者には人気ない HSP: 単純・低機能・パラダイムレス・初心者に大人気
479 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:44:07 ] >パラダイムレス さあ困った。
480 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:12:00 ] なぜ世界的な現役最高峰プログラマーが世界的な言語について語っていてる スレで、極東ローカルでゴミしかつかってない言語の話をするのか。
481 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:17:18 ] 世界的な現役最高峰プログラマーが このスレで語ってるわけではない。
482 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:59:25 ] HSPはダークホースだよな。 支持基盤が強いので化ければC++を駆逐できる可能性はあると思う。
483 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 15:48:29 ] >>482 馬鹿も休み休み言え。
484 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:25:22 ] 春休みだからな。
485 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 07:52:13 ] 素人だけど、Cをやっていてある程度理解しているつもりなんだが、 やればやるほど分からないことやきちんと理解していないことが 次から次へとどんどん出てくるんだよな。 なんか果てしない戦いが続いてる感じになってくる。 プログラム言語ってこういうもんなんだろうな。 C++も少しは勉強したんだが、C++プログラマになるとウンコになるのか。 やめとこうかなw
486 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:08:25 ] 具体的に何が難しい? ライブラリーを全部覚えるとかならともかく文法や作法はそれほど難しくないと思うけど。 演算子の優先順位とかなら暗記する必要もないし。
487 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:19:32 ] *pp[i]でsegvって(*pp)[i]なら平気でああそう言えばそうだったなあとか *が増えると普段使ってないと割ときついね
488 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:32:55 ] >>487 それだとCからキツイのでは・・・?
489 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:49:24 ] C++ハジメル人は STL、Boostを参考にコーディングし、 JAVA、C#、COOLを勉強するのばベストだね。 MFCから入ると変な癖つくからやめたほうがいいと思った。
490 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:14:30 ] MFCはSTLより長寿なんだぜ
491 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:19:43 ] 先に相手が死んだ上での長寿なら誇れるけど、 どっちも生きてる上で「先に生まれたぶんだけ長寿」な場合、 設計の古さのアピールにしかならないかも。
492 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:42:14 ] >>490 それは、MFCは何時死んだ設定で計算してんの?
493 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:28:49 ] >>485 >プログラム言語ってこういうもんなんだろうな。 そういうもん。 まあ、やろうとしている事の複雑さによる。 >C++も少しは勉強したんだが、 テンプレートの魔力に取り込まれた人の一部は 一生闘い続けた挙句、boost という魑魅魍魎を召喚しました。
494 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:22:46 ] >489 Boostなんか超絶悪い癖が付くから、参考にしない方がいい。 悪癖を自覚しながら使うのはいいけど。
495 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:38:01 ] 他人と協調してプログラミングを書くつもりなら better C以外の使い方はするな。 Templateの変態度を味わいたいならBoostガンガン使え でも檻から出てくるなよ
496 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:16:06 ] >>494 でも、その一部が次期C++に入りそうなんだろ。 楽しみ半分、不安も半分。
497 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:41:37 ] shared_ptrとかfunctionとかユーザとして使う分にはいいのもあるよ。 ソースコードは悪魔だけど。
498 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:43:19 ] >>486 >>485 だけど、文字列を扱う際に配列で扱うのとポインタで扱うのでは 微妙に違うから、それがらみで混乱することがあるかな。 Cでの文字列の扱いは基本的に嫌い。 C++だとstringクラスあるから文字列の扱いは楽なんだろうなあ。
499 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:36:03 ] 他人と協調してプログラミングを書くつもりなら C++の基本機能 ぐらい理解しろ。 BetterCを味わいたいならEC++でも使ってろ でも檻から出てくるなよ
500 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:15:31 ] >>499 これのこと?逆に、C++として何か欠けているの? www.caravan.net/ec2plus/
501 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:44:13 ] >>500 主に例外とテンプレートと名前空間がない あと多重継承とかRTTIとか新形式キャストとか 要するにアンチC++厨が嫌いなものを取っ払ったんだが 本当にただ取っ払っただけなので色々と使い物にならない 特に例外まわり
502 名前:デフォルトの名無しさん [2009/02/04(水) 18:44:48 ] ここでLinusがC+Liなんてオシャレ言語を作ったら一生ついていくんだけどな。 CVSとサブバdisってGit作ったくらいだからやるんじゃないか?
503 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:47:48 ] Cという完璧な言語がある以上、その再発明はしない とLinusは答えるだろう
504 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 19:24:29 ] Linusが言語のデザインなんてできるかよw どう見ても一発屋だろ。
505 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 20:00:42 ] >>483 ,484 馬鹿が存分に休みながら言ってるってことかwww
506 名前:デフォルトの名無しさん [2009/02/04(水) 20:16:49 ] >>504 ということは、HSP開発者>Linusってことになるのか…
507 名前:デフォルトの名無しさん [2009/02/04(水) 20:29:23 ] >>506 当たり前だろ。 何をいまさら。
508 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:42:14 ] 少なくとも組み込み系ならEC以上の機能はいらない。 >>501 が上げたものにメリットがほとんど感じられないうえ デメリットが大きすぎる。
509 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:44:20 ] Google C++コーディング規約 例外 我々はC++例外を使用しません。
510 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:57:17 ] 例外はモジュール内だけの閉じた世界で使われる分には問題ないけど、 それを飛び越えてグローバルな世界にしゃしゃり出てくると無限地獄の始まり。
511 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:58:21 ] 門外漢だけど、名前空間と新キャストは実行時のオーバーヘッドもないから組込で使っても問題ないように思えるんだが。
512 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:05:54 ] >>503 Linusは、C++もCも糞だが、Cの方が圧倒的にマシだから 使ってるって書いてたよ。 Cを完璧な言語なんて思ってないと思うよ。
513 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:08:13 ] だったらRubyを使えばいいのに。
514 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:08:17 ] Cより安全で実用的な言語ってあるのかなぁ
515 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:11:13 ] >>514 COBOL
516 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:12:39 ] >>514 PASCAL・・・は、安全だけど、実用的じゃない・・・
517 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:15:53 ] Java ただし、ごく一部の用途に限る
518 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:33:55 ] 言語をもっとカスタマイズできる方向にならないのかな EmbededC++よりももっと自由度高く。 多重継承禁止オプションとかテンプレート禁止オプションとか。
519 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:35:18 ] 使わなければいいだけじゃん。
520 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:41:54 ] 例外使わない主義の人たちはコンストラクタの失敗をどうやって検知してるんだろう 全てのクラスにerrno的なフラグ仕込んで作るたびにチェックしてるんだろうか 例外で通知するより凄く忘れやすそうだし、危険に感じるんだけど 例外アンチの人たちはその辺どうなの
521 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:45:14 ] ファクトリ関数作ったりコンストラクタと別に初期化関数設けたりするんでしょ、きっと。
522 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:50:04 ] ファクトリ関数だって最終的にはコンストラクタ呼ぶんだから コンストラクタのエラーを拾うのがファクトリ関数になるだけで話は一緒だろ 初期化関数?いちいちデフォルトコンストラクトしてから値設定し直すの? 実行効率命の組み込みでそんなことしてていいの?
523 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:03:04 ] 最適化すれば冗長なコードは消えるだろJK
524 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:03:51 ] いまさらぬるぽのキーワードができるとかものすごいうんこだと思う。 0で書いた既存のC++コードは置換すらできない。
525 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:12:39 ] 0からぬるぽの意味が消えるわけじゃないけどな
526 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:13:57 ] >>523 初期化関数がインライン化できない程度に複雑だったら無理だろJK
527 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 02:26:43 ] >>519 チーム仕事したことないだろ・・・
528 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 08:43:14 ] >>514 Cのどこが安全なんだ むしろ安全じゃないから専門家に使いやすいのに 安全を追うならVBでも使ってろ
529 名前:マイク ◆gZ6OoOjBU6 [2009/02/05(木) 09:35:06 ] Linusが本当にそれを言ったなら アメリカ人らしくて本音をちゃんと名前を出してぶっちゃけてくれているから アメリカつうか白人文化は良いな。
530 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 09:42:39 ] 今度はこっちか
531 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 09:42:54 ] リーヌスがアメリカ人?
532 名前:デフォルトの名無しさん [2009/02/05(木) 10:09:26 ] C++の深刻な問題点は、ソフトをグループで開発するときに現れる。 C++に精通したプログラマはついついC++の高度なテクニックを使って しまう。ところが、ペイペイの新米プログラマはそのコードの意味を 真に理解しておらず、誤解からバグを組みこんでしまう。 直接的にバグを仕込んだ新米プログラマが怒られるのだろうが、 考えようによっては高度で難解なコードを書いたベテランC++ プログラマの方がバグを発生させる罠を仕掛けたようなもので、 もっと責任が重いと思う。 まぁ、C++はプログラマの習得レベルの差が露骨に表れるから 共同開発には不適で、一人のプログラマがシフト開発するとき しか使えない言語ってことだ。
533 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 10:12:44 ] ルーシーの弟であるところの Linus はアメリカ人だろ一応。 >>532 どうだろ。無能は VB8 やらせても無能だしなあ。
534 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 10:43:17 ] >>532 「坊主憎けりゃ袈裟まで憎い」の典型的コメントだな 別にC++が悪いわけではない 無能プログラマが悪いだけだ
535 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:12:15 ] >>534 オレはCのエキスパートだが(この点について煽りたきゃ好きなだけ煽れw)、C++でオーバーロードやら 派生やらを駆使したプログラムを追うのは苦労するし、そんな書き方する奴はアホかと思うぞ。 C++の「美しい」書き方は解析やデバッグにはまるで向かないんだよ。沢山のクラスに「append()」が あったとき、コード中にある「hoge.append()」が一体どこを指しているのやら、探し出すのは大変なことだ。 プログラミングで一番大変なのはデバッグなのに、それ以外の仕事で大変な思いをするのは (しかも、みずから選んで)バカバカしいことだと思うね。
536 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:19:18 ] カプセル化に意義を見出せず、中で何やってるか気になって 追いかけないと気がすまないのが C のエキストラとやらですか。 まあ下手糞にクラス作らせると、そういうこともあるけどさ。
537 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:22:00 ] >>535 派生やオーバーロードを他人が追うことになっている時点でC++の使い方を間違えている。 ユニット化してブラックボックスで使うものだろ。
538 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:23:15 ] 何を言ってるんだ? デバッグ時や機能拡張時は追いかけざるを得ないだろう。 動いているものなら放っておくよ。
539 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:28:16 ] >>537 おまえも何を言ってるんだか。 ブラックボックス化したクラスは、本人しか触るべきでない? そいつが辞めたら、死んだら、どうするんだ。 機能拡張のために、またしても派生クラスを作るのか。 元のクラスを見ないまま派生して、効率が悪い、遅い、だけならいいが、 見ないまま書いたコードがバグらない保証があるのか? だいたい、「本人しか触れない」と宣言した時点で、糞コード確定だってことわかってるか?
540 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:28:59 ] >>538 他人がデバッグや機能拡張している時点でC++の使い方を間違えている
541 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:30:11 ] >>539 オブジェクト指向全般に対する批判だな、こりゃ。 クラスの仕様書が残っていないのが悪い。
542 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:36:42 ] >>541 どんなツモリ、と どうデキテルはちがうだろ。
543 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:45:01 ] クラス図くらい書いた上での話なんだろうな。
544 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 11:51:55 ] Cプログラマって IDE支援なしで組んでるの?
545 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:07:36 ] >>539 お前は立派な糞グラマだ
546 名前:デフォルトの名無しさん [2009/02/05(木) 12:44:46 ] >>534 お前みたいなのがバグを引き起こすテロリストになるのだ。 腐れチンポが、死ね。
547 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 12:50:52 ] >>546 逆ギレすんなよウンコグラマ
548 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:02:00 ] >>541 の > オブジェクト指向全般に対する批判だな、こりゃ。 これに尽きる。Cのエクスタシー君の話は、「C++の話」ではない。
549 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:07:48 ] そうか、逃げ道が見つかってよかったな。 でもその逃げ道は、「C++で書かれたプログラムはデバッグも修正もおそろしく手間がかかる」という 命題を否定できないけど、いいのか?
550 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:11:27 ] 誰々がいなくなれば解決すると主張する人間と、 継承とか例外がなくなれば解決する主張する人間では、どっちがマシだろうか。
551 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:16:10 ] >>549 で、クラス図くらいは書いた上での話なんだろうな。 >>539 の言っているのは一つの関数を複数人でいじり倒すのと同じことなのだが
552 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:24:46 ] C++は1行楽にするため何十行も追加するような言語 share ptrとかくだらん小細工ばかり多すぎ
553 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:35:04 ] >>552 そんなこといってるから 例外出た時に メモリリークしてても気づかないんだよ。
554 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:37:00 ] >>552 お前はC丼でも使ってろ
555 名前:536 mailto:sage [2009/02/05(木) 13:40:37 ] >>552 C++ はマルチパラダイムです。検討ハズレですね。 つか、なんで双方必死なの? 個人的には、構造化すら満足に出来ない連中に 「OOノススメ」なんて無茶だと思うんだが。
556 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:41:23 ] クラス図見てもメモリリークはどうにもならんからな・・・
557 名前:536 mailto:sage [2009/02/05(木) 13:41:40 ] 「健闘」の誤変換に気付いて修正しておいて 「検討」とはなんたる失態。
558 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:43:04 ] >>554 C丼で思い出した。 小学生の時に、藤井と言う子がいたんだが、彼女が日直の時に黒板の井の字の中に点を打ったのは、僕です。 それ以来、彼女はみんなから、藤丼と呼ばれるようになりました。ごめんなさい。
559 名前:536 mailto:sage [2009/02/05(木) 13:46:25 ] >>556 いや、クラス図は単に characteristics な面しか記述できないんだから 当たり前。
560 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:53:42 ] 結局誰も「C++はデバッグが極めて困難な言語だ」という命題には反論出来ないことはわかった
561 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 13:56:42 ] >>560 ちょっと待った 命題には前提があるだろ 「もし下手グラマがC++に糞コードをたくさん入れたら」という
562 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:25:24 ] 俺自身C++グラマだけど、 IDEが使えないような状況なら「デバッグはきわめて困難」だと思うぞ。
563 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:40:41 ] 結局>>539 =>>549 はフェードアウトか。
564 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:42:12 ] >>561 命題って言いたいだけだから、深く突っ込むとヒス起こすのでは。
565 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:11:53 ] >>562 でも自分はJavaでもC#でも同じことを感じると思う。
566 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:20:25 ] >>565 動的なディスパッチがある言語(C++, Java, C#)は ソース見ただけだと、次にどこに行くのかわかんないからねえ。
567 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:46:39 ] だからまずデザパタを理解しろって 話はそれからだ
568 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:11:06 ] デザパタ万能論者か
569 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:03:19 ] なんで唐突にデザインパターンに話を逸らそうとするんだろう。
570 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:01:43 ] >>566 on the flyでswitch文に変換して表示してくれるエディタを開発すればいいのだ
571 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:10:50 ] >>562 gdbなめんな 慣れれば超便利だぞ
572 名前:571 mailto:sage [2009/02/05(木) 19:11:46 ] よく考えるとgdbは超便利ってほど便利でもないような気がしたが まあ普通にデバッグでやりたいと思えることはちゃんとできる
573 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:29:17 ] この前、久しぶりにCでコードブレーカってゲーム作る機会があって、 がりがり書いてたんだけど、後で見直したらスパゲッティだった。 で、気が向いてC++に移植したんだけど、ずいぶん見通しが良くなってコードも短くなった。STL使ってるが。 コードを解くAIもクラスに分離できたし、いいことしかなかった。そんな趣味グラマ。 っていうかね、C++から離れられん体になってしまった。 クラスのいいところは、Length()とかSize()とかIsEmpty()ってメソッドが直感的に使えること。回りくどくない。リードオンリーだし。 不満は参照が固定されることだなぁ。ポインタ見たく挿しかえれないのが最初戸惑った。
574 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:29:34 ] >>570 マジで頭いいな! と一瞬思ったけど、すぐに、Cのコードをcppでマクロ展開したときの 苦い思い出が頭をよぎったよ。
575 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:29:48 ] なんか「最強の格闘技は何か?」って議論に似てるな。 結局使う人次第でしょ。
576 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:31:28 ] そういう時は、素直にポインタ渡しでいいじゃん
577 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:34:42 ] >>576 そうかもしれん。。。
578 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:46:40 ] どれが呼ばれるか、なんて、ステップ実行すればすぐ分かる事。 デバッガが無いなら typeid でも出力すればいい。
579 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:56:02 ] >>573 file.open("r")がopen(file,"r")より読みやすいとはどうしても思えない メンバ関数って結局は仮想関数の都合で第一引数を特別扱いしてるだけだろ そもそも読みやすくするための構文じゃないと思うんだけど
580 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:01:14 ] 特定のオブジェクトに関する情報を、限られた範囲の関数でグローバルに扱うものです。
581 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:03:36 ] >>556 継承やオーバーロードが追えないとか言うからクラス図を書けといったのに、 今度はメモリリークですか。 やれやれ。 話を逸らさないと都合が悪いようだな。
582 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:24:01 ] >>579 そんな貴方にscheme
583 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:26:20 ] >>573 えーっと、何かを開くときは、コンストラクタで指定するのがほとんどなんで、そういう奇妙なことにはならんと思うよ。 std::ifstream ifs(Path); で開ける。開いたかどうかは、isf.is_open();で一発。読み取りはこれでok。 もちろんifs.open(Path);ってこともできる。 ちなみに書き込みは、 std::ofstream ofs(Path);〜。 でOK。 俺の場合だけども、基本的にカウンタ以外の変数の使いまわしはしないなぁ。
584 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:40:48 ] >>579 操作の主体となるデータがはっきりするから OOの方が分かりやすいと思うが。 というか、ファイル名はどこに指定するんだ? それは。
585 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:48:10 ] >>584 ファイル名用の引数忘れてた…気にしないでくれ それはそれとして、fileは操作の主体じゃないぞ ファイルディスクリプタはファイルから中身を取り出すためのトンネルであって主体はあくまでファイルの実体 だからたとえばreadはfileを読むんじゃなくてトンネルに手を突っ込んで中身を取り出す操作なんだから file.read()よりread(file)の方が間違いなく的を射てる OOってその辺の混同を招くから気持ち悪いんだな、うん
586 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:49:39 ] >>583 カウンタも使い回すか? その都度、forで宣言するだろ。
587 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:52:50 ] OO表記をdisりたいんなら file.read()とかよりバイナリメソッドを例にとったほうがいいよ "".equals(s)とかs.equals("")とかいうやつね
588 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:53:17 ] >>585 まあ、一口にOOといっても、Common LispのCLOSみたいなのならそういう気持ち悪さは無いが
589 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:55:49 ] >>585 ファイルディスクリプタの先にあるファイルそのものも カプセル化により抽象化して内包してしまえるのだよ
590 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:55:58 ] >>587 バイナリメソッドは実はそんなに気にならないなぁ "".equals(s)は「.equals」って演算子みたいに見えるから 二項演算は操作が真ん中にある方がしっくり来る
591 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:56:53 ] File1にFile2が出たら C++なら file1.read() file2.read() と書けるけど Cなら read_file1(file1) read_file2(file2) になる。 オーバーロードできないといちいち名前変えなきゃいけないから気持ち悪いんだな、うん
592 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:58:58 ] >>590 本来対等である2項演算子のoperandのどっちかを無理やり「receiver」に 見立てなきゃいけないのは不自然だと思わないの? Lispなら常にoperatorが前置でoperandは平等かつ何個でも置けるね
593 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:59:41 ] >>589 それが嫌なんだよなぁ オブジェクト指向ってそういう風に「同じようなものに関わってるけど、実は微妙に違うもの」ってすぐ隠蔽しちゃうじゃない 実はその微妙な違いが大事だったりするのにさ 下手に隠蔽するから、いざ区別が必要になった時に微妙に違うクラス作り直すことになって 同じような名前が付いてて同じような機能持ってて……ってありがちじゃん 元々別にしてりゃよかったのに
594 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:06:24 ] オブジェクト指向教信者に何を言っても無駄だよ。 こいつらは批判精神なんてとっくに失ってる。 何も考えずにオブジェクト指向を信仰してるだけなんだから。 出現からこれだけ時間が経って、これだけ成果を挙げていないものを いつまでも信じるなんて信仰以外の何物でもないよ。
595 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:06:59 ] >>593 自分の無能さを言語のせいにしてると、いつまでたっても成長しないよ。
596 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:08:48 ] >>586 たまーに、必要になるときがあるんだわ。基本的にはそのつど宣言するのだけども。
597 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:09:27 ] >>593 C++の標準からしてそうじゃん… stringとstringstreamとかさ ただのchar[]に大げさな名前と機能付けて似たようなもの2つも作ってアホかと
598 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:10:41 ] vector<char>もあるぞw
599 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:12:09 ] >>598 それはバイナリ配列でしょ。
600 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:12:18 ] stringとstringstreamが同じようなものって、どういうこった。
601 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:13:35 ] C のようなバッファとサイズを渡して結果を入れてもらう関数を使うときは vector<char> を使わざるを得ないんだよ、現状では。 そのうち string 使えるよう保証されるようになるけど。
602 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:14:27 ] stringstreamはsprintf相当のもので、std::stringはコンテナだよ。
603 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:17:42 ] >>601 奇妙な設計に見えるなぁ。 Cとの互換性のためって言うならそういうのもあるんだろうけどさ。やったことないや。
604 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:24:24 ] ガタガタぬかさずに使えや C++に文句言ってる奴はC止まりの奴に決まってる
605 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:26:57 ] >>604 なぜかC++信者はCをよく理解してない分際で「C止まり」などと見下したことを抜かすんだよなあ
606 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:29:33 ] >>605 何を抜かすか 俺はC89の規格が決まった頃からずっとCを使っている いわゆる両刀使いだ
607 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:30:17 ] >>603 現状の規格では string の内部バッファは連続領域とは限らない。 だから規格に厳密に従うなら、string をこの目的で使う事は出来ない。 昔は vector もそうだったが、2003年に改善された。 string も次期で改善される予定。 まあ、実際に string の内部バッファが連続領域でない実装なんて知らないけど。 data() や c_str() の実装の手間を考えると当然だろう。
608 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:47:44 ] >>607 なるほど。
609 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:50:52 ] >>590 そういえば、s.equals("")なら許せるけど、Javaとか(C++も?) 定数文字列を先に持ってくる奴が多いんだろう C言語でも、if( 0 == p ) みたいにひっくり返す馬鹿がいるけど、 == を = と書いたことを検出できる、とか言い訳にもならない
610 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:55:16 ] >>609 javaのは、sがnullでもヌルポが発生しないってことらしい。 ダメテクニックだな。
611 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:56:18 ] ifがbool以外をとるのがダメなんだろうけどさ。 明示的にboolにキャストが必要とかすればp=0とかしようが間違えないわけで。
612 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:56:59 ] 間違って=と書いた日の問題箇所特定の難しさを知らんとしたら、かなりの幸せ者だ
613 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:57:14 ] _ ミ ∠_) / / \\ ウイーン Γ/了 | | ウイーン |.@| | | ガッガッガッ | / | . 人 |/ | < >_Λ∩ _/ | //. V`Д´)/>>610 (_フ彡 /
614 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:59:25 ] >>612 ふつー一発でわかります。
615 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:09:58 ] >>610 なるほど・・・
616 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:11:45 ] >>614 実務経験無い人は、無理にレスしなくていいよ
617 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:15:53 ] >>614 スーパーハッカーですね
618 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:16:53 ] =と==の間違えを見つけられないような人が実務やってるんですか。
619 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:17:25 ] コンパイラが指摘するだろう。 Java/C#ならエラーだし、C++だって警告くらい出すぞ。
620 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:23:09 ] >>619 そういえば、C#やjavaでも定数を左のおくスタイルの人っているけど、 ああいうのは、意味を分かってやってるのだろうか。
621 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:43:16 ] そういうまあ過去のテクニックというか文化はどこから新世代の言語に伝搬するんだろうな
622 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:55:16 ] まったくもってC++信者に説得力がない。 中規模クラス以上の開発で責任者やったこと奴いないの? すくなくともデメリットくらい語れないと話にならない。
623 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:57:20 ] 無能じゃんって罵ってればプロジェクトが収束するなら一日中罵るわw
624 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:00:01 ] 警告を出さないようにコードを書くって、当たり前のことをやってない人が 実務に携わって、しかもけっこうな規模をやってるって事実のほうが怖い。
625 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:02:19 ] C++語っちゃうようなやつにもいるよね そういう奴とは二度と一緒に仕事しないけど
626 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:02:36 ] 定数を左に置くスタイルの人って、本を読んだり職場以外のコードを読んだりとかしないのかね?
627 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:03:11 ] 意味わからなくてもエラーが出て安全だろ。
628 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:03:40 ] でも職場のコードよく読んでるやつのほうが一冊の本で頭よくなった気になれる奴よりまし。
629 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:05:18 ] 参考になるコードなら良いけどな 俺の職場のコードは腐ってる 読めば読むほど何も考えてないことが伝わってくる まさにウンコ
630 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:06:08 ] でも職場の代々受け継がれてるクセの濃いコードしか読んでないから、 定数を左に置くのがいいとか思っちゃうんでしょ?
631 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:09:04 ] いまえらcppファイル1000個以上、合計100万行以上のプログラムの実装・管理を やった経験くらいはあって語ってるんだよな?
632 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:10:37 ] >>625 そんなんじゃ気が付いたら回りに誰もいなくて君一人だね
633 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:11:36 ] >>632 警告すらも理解できない奴ばかりなの?
634 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:13:15 ] >>633 現実を見ようよ そんな立派なグラマばっかりいないから
635 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:15:32 ] こえ〜w さすがにこええ 警告をエラーにすればいいんじゃないの? とんでもない回避されるけどw
636 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:16:23 ] それで、 誰かLinusの書いたC++のコードを見たのか?
637 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:17:40 ] >>631 スタイルの話題になると「俺は経験で」で言い出すやついるけど、 匿名でそれやっても、論拠にならないよ。 俺がみたいくつかの大規模で世間で評価されてるプロダクトのソースは 定数を左におくスタイルは採用してない。
638 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:18:39 ] 見た程度のレベルの人がなに言ってもねw
639 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:19:20 ] 経験も本人談だし。
640 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:20:35 ] LinuxカーネルやGCCだってコンパイルするとボロボロ警告出てくるぜ…
641 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:21:13 ] 実績ある奴の経験談と本読んだ感想が同レベルだとでも?
642 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:23:11 ] 実績ある人のコードを読んだら、定数を左に置くスタイルじゃなかったから。 自称実績のある人じゃなくて、本当に実績のある人の。
643 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:24:29 ] 本人連れてきて書き込ませろよ。 本当に出来る奴ならどうでもいいって言うと思うぞ。
644 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:26:32 ] まあダメな奴はコーディングルールをいくら用意しようが無駄だからな
645 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:27:19 ] 本当に出来る奴は面倒ごとを機械に任せられる奴 =を書き間違ってないかのチェックなんてコンパイラに任せればいいんだから左に定数を書くのが正しい 本当に出来るならそう言うはずだ
646 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:27:49 ] >>643 そんなことはない。 定数を左のスタイルの話題は昔からある話題で有名で知ってる人は多い。 で、そのスタイルが少数派ってことは、どうでもいいじゃなくて、知ってて採用してないってこと。
647 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:28:35 ] 論理学から勉強しなおせ
648 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:29:02 ] でもどうしても気持ち悪いなら無理して左に書いて生産性を落とさなくてもよい と付け加えるのが真のプロフェッショナル
649 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:31:14 ] ワーニングですらそんなものないのに何でかたくなに否定するかね
650 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:31:58 ] 定数を右に置くのは可読性のためだろ 一通り書いてテストしてる間は左に定数置いて リリースする時に==の両辺を入れ替えてるんだよ grepで一発だし==なら入れ替えても意味が変わる心配はない みんなそうしてると思うんだけど
651 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:33:05 ] 動いてるソースを改変するなんてバカだろ
652 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:34:34 ] つリファクタリング
653 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:34:45 ] ==の両辺の入れ替えに意味の変化は一切ないから改変じゃないよ &&の入れ替えならダメだけど==は評価順不定だから
654 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:34:48 ] 有名書籍とか有名プロダクツのソースとかで、定数を左におくスタイルのやつがあったら、 これって例をだしてみればいいのに。 名前の出せない「俺がやった大規模プロジェクト」以外にもあるんでしょ?
655 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:35:56 ] if( a(1) == a(2) ){} int a(int v){ static float s = 100; s /= v; return s;}
656 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:36:58 ] 俺どっちでもいいから気にしたことないけどいくらでもあるんじゃないか? それ縛りのコードは少ないだろうが。
657 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:37:23 ] 意味が変わるかどうかではなく、手を入れることがバカだと言っている
658 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:37:44 ] 653涙目w
659 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:38:17 ] >>656 こんどから注意してみてみたら? すごい少数派だと思うよ。
660 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:38:55 ] >>655 不定だな if( a(2) == a(1) )だとしても不定には変わりない 意味も動作も変わらない
661 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:40:23 ] >>660 あきらめろ
662 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:40:38 ] 戦争をワーとか言い出しそうな人が紛れ込んでるな
663 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:40:44 ] お前の思い込みなどどうでもいい
664 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:41:25 ] "".equals(s)とs.equals("")では意味も動作も違うと思うのだが
665 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:43:11 ] if(0 == 5 == 3 == 5) printf("== 5 == 3 == 5 ==\n"); /* == 5 == 3 == 5 == */ grep一発でどうやるの?
666 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:44:21 ] まさかとは思うけど 655のコードでif( a(1) == a(2) )なら偽でif( a(2) == a(1) )なら真になるとか 思ってる輩は紛れてないよな?
667 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:44:38 ] あまりいじめんなよ。 人とプログラム書いたことないんだから。
668 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:45:12 ] アホが涙目w
669 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:47:15 ] >>666 まさかとは思うけど、お前はそうじゃないと思ってるの??? 幼稚園からやり直せ
670 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:49:11 ] int a(int v){ static int s; int t; t = s; s = v; return t;} if( a(1) == a(2) ){} if( 1 == a(1) ){}
671 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:50:43 ] >>650 そんなアホな。 エンバグが趣味なんですか?
672 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:51:37 ] 左定数厨はプログラムが上から順番に実行されることも知らんのか
673 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:51:57 ] 釣り宣言まだぁ?
674 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:53:10 ] コーディングルールとかコーディングスタイルってのが流行った時期があるから メジャーなスタイルで定数を左辺に置くのもあると思うんだが、ちょっとぐぐった程度じゃでてこないな。 バカにしてるやつは若いヤツなんだろうけど、コンパイラがウンコな時代には役に立ったものだよ。
675 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:53:11 ] >>670 で結論出ただろ。
676 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:55:38 ] >>670 のa(1)とa(2)はどっちが先に呼ばれるかわからないから不定だな if( a(2) == a(1) )だとしてもa(2)とa(1)のどっちが先に呼ばれるかわからないから不定だ
677 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:57:34 ] 不定って言えば逃げられるとでも思ってんのかw
678 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:57:58 ] お前のプログラムの動作が不定なんだろw
679 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:58:14 ] 670でa(2)が先に呼ばれるわけないだろwwwwwwwwwwwwwwwwww もうやめとけってwwwwwwwwwwwwwwwwwww
680 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:58:30 ] >>676 不定ではあるが、「==のLHSとRHSの置換が常に等価なので置き換えても安全である」 という間抜けな主張への反証としては十分過ぎる例かと
681 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:58:45 ] コンパイラがウンコな時代とか時代背景があるならわかるんだが 今なお使っている奴はなんなんだという
682 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:58:54 ] 左辺に定数置くとウォーニングでんのか?
683 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 01:59:55 ] 左辺に定数を置いたらダメな理由が不明すぎ。 自分のスタイルと違って見づらいっていうならまだしも、かっこ悪いとか時代遅れとか? 死ねよ。
684 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:00:24 ] >>682 if (x = y) {..} とか書くと今のコンパイラは大抵は警告を出す が、別に比較式はif文だのwhile文だの中でしか使えないと決まっているわけではない
685 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:01:24 ] なんだ、本物のバカばっかりか www.kouno.jp/home/c_faq/c3.html#4 >>680 a(1) == a(2)もa(2) == a(1)もどっちも「不定」という意味で等価 どっちで書いたとしてもどっちが先に呼ばれるかわからないんだから
686 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:02:08 ] つーか "".equals(x) と x.equals("") は意味が違うだろと 前者はreceiverがStringであることが確定している式で、xがnullでもよい 後者は確定していない(nullかもしれない) 本当は、二項演算をこのような形でしか書けないJavaがよくない
687 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:02:11 ] お客に「前から動作不定だったんですよ!」って言い訳するの?
688 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:02:48 ] 馬鹿はお前。言い訳になってない。
689 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:04:27 ] >>687 入れ替えようと入れ替えまいと、コンパイラのご機嫌で評価順なんていくらでも変わるんだから 遅かれ速かれ言い訳することになるだろうね あんなコード書いてたら
690 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:04:35 ] で、grep一発の件はどうなったの? >>665 は?
691 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:05:55 ] お客に「悪いのは僕じゃない!」って言い訳するの?
692 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:05:56 ] >>685 またひどいリンク見つけてきたな >f() + g() * h() > >掛け算は足し算の前に起こるということはわかっているけれど、3つの関数のうちどの関数が最初に呼ばれるかはわからない。 そんなわけねーだろwww
693 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:06:52 ] 動作不定がコンパイラの機嫌だと思ってるのかよ!!!
694 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:07:16 ] 入れ替えてバグが出るようなコードは たとえ入れ替えなくてもちょっとした弾みでバグが出るんだよ だったら入れ替えても入れ替えなくても同じじゃないか、と言ってる
695 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:07:36 ] 恥ずかしすぎる。
696 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:08:27 ] >>693 機嫌だよ 極端な話、コンパイルごとに評価順変えたっていい それが不定(unspecified)の意味
697 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:10:39 ] Javaは左辺を先に評価すると決められてる 左辺から評価するのが普通だろ わざわざ右辺から評価する変態コンパイラがあるわけがない
698 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:12:35 ] 本の知識だけで本物のコンパイラを知らない子供が不定不定って騒いでるんだな
699 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:17:32 ] 規格票に不定と書いてあるんなら規格票が最優先だばかものども
700 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:18:57 ] >>698 帰れよ
701 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:26:32 ] ついに反論も出来なくなったかw これに懲りたらもう二度と勝手に左辺と右辺を交換するなよ 評価順が変わってみんなに迷惑かけるからな
702 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 02:47:15 ] >>692 さすがにランダムで順番決めるわけじゃないよ。 その文章は、コンパイラが違ったり、同じコンパイラでも最適化とかのオプション次第で変わるよと言う話。
703 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 04:09:55 ] >>692 激ワロタww
704 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 07:36:50 ] おまえら if (3 == a) の件で騒いでたのか。暇だなあw これって誰かが「こう書けば間違って(3 = a)と書いた時検出できる」って提唱して広まったんだけど、 ○"=="以外では意味が無い ○"=="でも定数相手以外では意味が無い ○直感的でなく読みにくい(人間は「aが3と等しければ」と思考する、逆はあまり得意ではない) という理由から言うほど広まらなかったんだよな。 意外に、直感的でないというのは大きい理由で、流して読んでるときにこういう箇所で「ん?」って 止まっちゃうのって結構思考の邪魔になる。 今でも頑張って「3 == a」って書いてる奴はまあ、頑固というか論理的すぎるというか形式主義 というか、要するに「感覚」より「論理」の方が大事な奴なんだろうな。 コーディングやってると「感覚」を妨げることの方がよっぽど作業効率を落とすと思うんだけどね。
705 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 07:41:50 ] 普通は = にしても警告出るから a == 3 で全く問題ない
706 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 07:46:04 ] わたしも昔は、定数左派だったが、いまではコンパイラが警告出してくれるので、どちらでもよくなった。 強いて言えば、読みやすい方(例えば右側)に書いている。 if ( foo >= 0 && foo < 256 ) よりも if ( 0 <= foo && foo < 256 ) の方が、読みやすいから、 こういうときは、左に書いている。まぁ、今回の話とは関係ないことだけど。 そろそろ、C++プログラマはウンコの話に戻せよ。
707 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 07:51:15 ] >if ( foo >= 0 && foo < 256 ) よりも if ( 0 <= foo && foo < 256 ) の方が、読みやすいから、 こういう、数直線のイメージに拘ると称して意味不明な理屈を振り翳す奴ってよく居るよね。 前者なら「fooがゼロ以上で256未満」と素直に読めるのにね。
708 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:03:36 ] わかるなー if ( 0 <= foo && foo < 256 ) がif ( foo >= 0 && foo < 256 ) より読みやすいとは一切思わないね まあこっちはそこまで読みにくくもないけど、 これの否定をif ( foo < 0 || 256 <= foo ) とか書かれると最悪なんだよ こっちに関してはif ( foo < 0 || foo >= 256 ) の方が圧倒的に読みやすいに決まってるのに 数直線にこだわる奴は数直線で思考止まってるんだよね
709 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 08:52:09 ] だからコーディングスタイルの話は他のスレでできるだろ。 ここはうんこのスレなんだからそれらしくだな
710 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 09:41:31 ] ほんと簡単な話題だとくいつきがいいよな 左定数なんておまえら何回同じ話してんだっつーの
711 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:47:13 ] 自転車置場の議論ってやつだな。 ttp://0xcc.net/blog/archives/000135.html
712 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:09:20 ] C プログラマは下らない議論でしか盛り上がれないからな。
713 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:21:00 ] だな C言語は文法が簡単なので雑談に流れやすい C++になると言語仕様そのものが難解になるので雑談している暇がない と言ったところか
714 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:28:20 ] C++の言語仕様が難解ってどんだけ馬鹿なんだよ。
715 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:36:13 ] C++の言語仕様が難解じゃないって言ってるってどんだけ馬鹿なんだよ
716 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:41:06 ] バカばっか
717 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:45:18 ] >>714 こういう奴にboostのソースを全部読み解けるかたずねてみたいものだ
718 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:02:06 ] boostが難解なのであってC++の言語仕様が難解なのではない
719 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:04:33 ] また言い訳始めよったか
720 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:15:56 ] boost自体のソースはきれいに出来てるじゃないか むしろboostを使うと
721 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:55:10 ] 言語仕様の話してんのに boost 持ち出すとか、どんだけ莫迦なんだろう。
722 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:58:20 ] >>713 えーと、難解だから偉い、と言っているんでしょうか?
723 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:17:18 ] >>707 ,708 Pythonで普段 if 256 <= a < 4096: pass って書いてたら、他の言語でも自然に 0 <= a && a < 256 って読み書きするし、普通に読みやすいよ。
724 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:18:19 ] brainf*ckやwhitespaceのコードを読めばわかるが 言語仕様が単純明快でも高可読性には必ずしもつながらない
725 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:19:40 ] >>708 否定するときは直感的に否定で書こうぜ。無理に or に書き直す必要は無い。 if ( !(0 <= foo && foo < 256))
726 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:34:44 ] それならまだ if (〜) ; else の方が…つか、style スレでやれと。何度も。
727 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 18:08:16 ] >>725 Pythonは所詮スクリプト言語だし、効率なんてどうでもいい所で使うもんだからそれでもいいけどさ if ( 0 <= foo && foo < 256 ) の書き方のもう一つの最悪な所として、柔軟性が全然ない たとえばfooが負になることが滅多にないとすると、当然両辺の入れ替えを考えるわけだが このまま入れ替えるとif ( foo < 256 && 0 <= foo ) という壮絶な式になってしまう 数直線にこだわるならif ( 256 > foo && foo >= 0 ) になるが、数直線としても向きが逆だし ただ両辺を入れ替えるだけなのに全部書き直しだ 最初からif ( foo >= 0 && foo < 256 )ならそんなこと考える必要もないんだぜ
728 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 18:47:24 ] 何が壮絶なのやら
729 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:08:09 ] >>727 >たとえばfooが負になることが滅多にないとすると、当然両辺の入れ替えを考えるわけだが おれはそんなこと考えないから数直線で良いや。 いい加減、個人の感性の問題で、お前の感性に根拠なんて無いことを自覚しろ。
730 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:09:01 ] Cプログラマって本当に暇なんだな
731 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:20:37 ] C++って難解なんかい? うわこれすげーおもすれー
732 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:06:13 ] >>729 おいおい…&&は偽になりやすい順に、||は真になりやすい順に並べるのが当たり前だろ そんなことも考えずにC使うなよ
733 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:18:07 ] >>729 短絡評価(short circuit)って知ってる・・・よな?
734 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:58:12 ] 比較回数減るから速くなるって言いたいんだろ、知ってるよそんなもん だがそんなのはコンパイラが最適化の時に決めるもんであって人間様が気にすることじゃない 可読性の方が大事
735 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:09:32 ] >>734 コンパイラに期待しすぎ
736 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:15:47 ] if(0 <= a && a < 256) のときに 0 <= a の方が a < 256 よりも 先に評価されるのは仕様で決まっていますか?
737 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:17:47 ] >>734 ショートサーキットに反するから絶対にひっくり返してはくれないよ。 まあ、そもそもこんなところを手動最適化したところで 効果なんてたかが知れてる。 基本的に全部読みやすく書くべき。
738 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:23:06 ] >>736 それに依存した書き方がされているのが当然だから バグ入れるなよ
739 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:27:54 ] >>734 バグニモマケズ 副作用ニモマケズ 標準ニ準拠シ プログラマノ意図ヲ汲ンデ 空気ヲ読ンデ 適切ナ方ヲ最初ニオイテクレル ソンナコンパイラニ 私ハナリタイ 無茶言うなよ(笑)
740 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:30:26 ] >>739 その「副作用」は意味合ってんの?
741 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:45:46 ] if ( foo >= 0 && foo < 256 ) のどこに副作用があるんだよアホか (fooやifが変なマクロってのはなし)
742 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:50:45 ] >>741 ああ、そこは一般論の話。 変数なら副作用は無いけど、↓ 「リソウノコンパイラ」なら hoge()>piyo()&&foo()==bar() とかにも対応しているんじゃね? そのときはきっと プログラマノ意図ヲ汲ンデ 副作用がおきないことを(リソウノコンパイラが)理解した上で 空気ヲ読ンデ 適切ナ方ヲ最初ニオイテクレル ソンナコン…(ry っていう意味。 説明不足すまそ
743 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:14:56 ] min < a && a < max みたいな上限と下限を指定する比較って そもそもあまり書かなくない? 思い起こすと、C言語を覚えたばかりの頃はよく使っていて、 Pythonみたいな min < a < max があればいいのに、と思ったけど 今は全く使わない。 経験を積むと自然と使わなくなる書き方じゃないかなあ・・・多分
744 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:15:39 ] エラー処理とか全くやってないのか
745 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:22:48 ] 入門者の頃と違って、エラー処理をちゃんと考え出すことも そういう単純な範囲比較をしなくなる理由のひとつだろうね もちろん単純に上限下限でくくって済むケースもあることは否定しないよ
746 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:31:38 ] >>741 bool operator&&(int a, int b){printf("バカ\n");return 0}
747 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:44:04 ] いや、沢山あるだろう・・・
748 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:46:49 ] もちろん単純に上限下限でくくって済むケースもあることは否定しないよw
749 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:57:18 ] プラスαがあっても上限下限でくくる部分はそう書くね
750 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:38:18 ] くだらないことをさも意味があるかのように話すからよってくるなって言われるんだろうな
751 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:59:10 ] >>746 それはさすがのC++でも許してない
752 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:26:04 ] >(fooやifが変なマクロってのはなし) つ「演算子のオーバーロード」
753 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:43:58 ] DDR3は待たなくてもいいっぽいな。 ttp://www.age2.tv/rd05/src/up3543.jpg ttp://www.age2.tv/rd05/src/up3542.jpg ttp://www.age2.tv/rd05/src/up3541.jpg ttp://www.age2.tv/rd05/src/up3540.jpg
754 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:45:01 ] guro
755 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:46:01 ] intとintの演算はオーバーロードできないぞ それやるならこうしないといけない Bar operator>=(Foo, int){/*...*/} Bar operator<(Foo, int){/*...*/} bool operator&&(Bar, Bar){/*...*/}
756 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:47:34 ] int が別の型に置換されるマクロかもしれないじゃないか
757 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:49:29 ] なるほどその発想はなかった
758 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:11:40 ] IsRangeとかテンプレートでつくれよこのウンコやろう
759 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:23:29 ] OrangeRange
760 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 01:28:53 ] Boostにintervalといううんこがあるよ Boost Interval Arithmetic Library www.boost.org/doc/libs/1_37_0/libs/numeric/interval/doc/interval.htm
761 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 03:16:02 ] #define int char #define private public
762 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:16:46 ] C++の優れている点 ◎bool型 ◎文字定数がchar型 (Cだとint型) ◎namaspace ◎メンバ関数 (structスコープ内限定の関数を宣言できる) ◎inline関数 ◎引数省略時の解釈。 int f( ); が int f( void ); と等しい。 Cだと引数は任意の意。 ○static_cast等の新形式のキャスト (もっと短くして欲しいが…) ○デフォルト引数 ○structがスコープを持つ。 Cだとstruct内にstruct等を書いてもグローバルスコープ。 △参照 △変数の宣言がブロック先頭に限定されていない まとめると 「型・スコープがより厳密になった一方で、記述の柔軟性がUP」 ですかね。
763 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 06:24:37 ] for (;_;)//~~ while (T_T)//~~
764 名前:デフォルトの名無しさん [2009/02/07(土) 10:04:51 ] ここでアセンブラ廚の俺が登場 素直にLisp使え
765 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 10:22:05 ] まずはLispでカーネルモジュールあたりを作ってから口出してもらおうか。 そういえば「出刃どらはC++で書きたい」というようなスレがLKMLであったような。
766 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:17:06 ] テレビの制御モジュールではダメかね?
767 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:39:18 ] デフォルト引数は手抜き野郎がチェックせずに関数仕様を変更する温床にしかなってない気がするんだが。
768 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:18:23 ] デフォルト引数より名前つき引数をサポートしてホシィ
769 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:09:11 ] >>768 これは同意 とはいえ、全ての関数呼び出しに名前付けろとか言われると やりきれないけど
770 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:23:54 ] クロージャが匿名クラスなら 名前つき引数は匿名構造体か
771 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:26:48 ] 最近のgccだと foo({.hoge = hogedata, .fuga = fugadata}); とかいけるんだっけ?
772 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:40:46 ] hoge、fugaの型は?
773 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:13:32 ] ほんとにできたよな、と試してみた。 #include <stdio.h> struct hore { int hoge, fuga; }; void foo(struct hore *data) { printf("hoge=%d\n", data->hoge); } int main(void) { foo(&(struct hore){.hoge = 1, .fuga = 2}); return 0; } 多相関数なんてないんだから、キャストなしでも警告程度で自動型判定して くれてもいいんじゃないかとオモタ。
774 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:44:13 ] >>771 ,773 C99からできるようになったんだよ。 前は、GCCの拡張だった気がするけど。 まぁ、それ使い出すともうC言語じゃないと思っているから、いまだに実際に使ったことはない。 いまだに、C89でも通るように組んでいる。(というかむしろ-std=c89 -ansi -pedanticでコンパイルしている) #if (__STDC_VERSION__ >= 199901L)で、inlineとかrestrictとか使うようにしている。 可変引数マクロを使いたいと何度思ったことか。全ては、C89で通るように。
775 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:20:41 ] それ、名前付き引数じゃなくて、複合リテラルだろ
776 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:27:30 ] ちなみに、C++0xだと初期化リストでfoo({hogedata, fugadata});と書けるようになるはず。
777 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:33:53 ] むしろ、C99,gccマンセー。
778 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:35:27 ] >>774 可変引数マクロは最低限2つ引数がないと使えないという糞仕様なので 使わなくていい。なんでgcc拡張をそのまま採用しなかったのが意味不明。 C89で通したいならMACRO(())で今後もやるしなかいな。
779 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:00:50 ] >>778 引数2つってどういうこと? seclan.dll.jp/c99d/c99d02.htm#dt19990405 ここにはこういう例が載っているけど。 #define dbg(fmt, ...) \ printf("debug:" fmt, __VA_ARGS__) #define adbg(...) \ //(1)これもOK printf("debug:" __VA_ARGS__)
780 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:10:11 ] >>799 あれ?前試したときは #define HOGE(FMT, ...) みたいに一つは置石がないと ... を続けられなかった記憶があって そう書いたんだけど、... 単品で通るね。 スマン、嘘情報でした _O_ (トンクス)
781 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:59:11 ] C最強だろw C++とかコロコロ言語仕様変わるし 糞仕様のオンパレードw
782 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:40:21 ] と、C++に挫折したCプログラマが負け惜しみを呟いております
783 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:41:47 ] Cで数十万行のものとか扱ってるけど その8割方はschemeのコードから自動生成したものだったりする Cはこういう使い方も比較的楽できるからいいね、C++でやろうとしたら 数倍難しい
784 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:45:01 ] Cのコードを吐けるなら C++のコードも吐けるだろ ほぼ同じで動くんだから
785 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:09:23 ] Cが低レベルな言語だから高レベルな言語からの変換がしやすいだけでしょ。 コンパイルができるとCに変換できるはほぼ同義じゃねーかよ。 パラダイムの違う高水準言語同士で機能をフルに使った変換とか難しくて当然じゃねーかよと。
786 名前:デフォルトの名無しさん [2009/02/07(土) 21:38:45 ] >>762 template もあるんじゃね
787 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:42:34 ] >>783 それなら全部schemeで扱って、コンパイルのときだけCにすればいいってことだね。 つまりscheme最高ってこと?
788 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:17:25 ] >>787 8割って書いてあるだろ。 それを無理矢理10割にしようとした結果が、C++のようなモンスター言語だ。
789 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:22:50 ] まぁ確かに最近のC++はメタプログラミングに力入れてるね
790 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:37:59 ] C++は糞言語 これだけはガチ
791 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:43:23 ] その糞を拭えば、コアはすばらしく良い言語なんだよ Cの膨大なライブラリもそのまんま使えるし 糞の上塗りさえやめてくれればいいんだけど
792 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:56:15 ] 糞は糞 C++はRubyよりも狂信者が多い 異端宗教者の集まりだしなw
793 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:00:49 ] 根拠のないアンチC++も多いってことは分かった。
794 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:08:54 ] 信者でもC++を他人に薦めるようなのは少数派だしね
795 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:24:12 ] いや糞がついたものは洗っても食わないだろう普通
796 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:25:55 ] 都会の人間は堆肥を知らない
797 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:31:09 ] 江戸は、糞の再利用にかけては今も昔も世界最先端都市だったのになあ 潔癖症は中国農薬野菜でも食ってろ
798 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:38:34 ] ・メンバ関数 ・アクセス修飾子 ・new/delete演算子とこの2つだけの演算子オーバーロード これだけでいいよ。継承は単一継承ならホントはあってもいいけど 継承を乱用する奴多いから要らないかな・・・
799 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:39:39 ] ベースはc99ね
800 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:39:53 ] テンプレートも入れといて。
801 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:40:19 ] テンプレートも乱用されるからね・・・
802 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:47:28 ] 継承よりは副作用がないと思うんだ。
803 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:29:13 ] なんでそんな四則演算のオーバーロードをいやがるん。 ベクトルとか行列とかクォータニオンとか複素数とか扱ったことないわけ?
804 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:36:46 ] >>803 意味無いし生産性悪い書き方だから 排除すべきだろ そんな特殊なケースのみを言語仕様に盛り込み たがるアホがC++に多い影響でC++自体が邪教の 産物になってしまっただろ。 次期C++仕様もboostの製作陣から糞過ぎるって 痛烈に批判されてるしなw
805 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:39:37 ] 宇治社中で学んだ口だがオーバーロードいらん
806 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:42:04 ] haskellみたいに関数を演算子として適用する明快な方法を提供していれば また状況は違ったかもしれないが、
807 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:47:03 ] >>803-804 意味はあると思うけど、指針が無くて個々人の感性に任されるから、 乱用されて他人から見たら直感的でない、ってケースがありすぎる。 結果、いっそ排除した方が良いというハメに。
808 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:07:07 ] Prolog みたいに演算子を好きに定義できる言語もあるんだし このくらいなんてことはないよ
809 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:19:48 ] Prologで大規模開発してから言ってくれ
810 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 04:38:56 ] 演算子オーバーロードが無かったら… stringとかvectorとか、めっさ使い勝手が悪くなると思うけど。 record = name + "\t" + address + … ; とか書けてたのが、↓になっちゃうんですが。 record.assign( name ).append( "\t" ).append( address ) … ;
811 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 05:00:46 ] そんなのどうでもいいというか良く使う機能で慣れてるから違和感ないだけで 慣れてなければPerl並に可読性悪い。
812 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 05:04:55 ] 演算子多重定義は要るよ派だけど、 C++のostringstreamとC#のStringBuilderでは後者のほうが使いやすいと思う。 そもそもiotreamの<<と>>が終わりの始まりだったな。
813 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 05:41:31 ] 記号地獄はもういやです
814 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 05:43:58 ] CのDLL -> C++/CLIのDLL -> C丼のGUI の構成でC++/CLIを使ってみた。 変態言語だと思った。 いや、C++は好きなんだけど… スレ違いか・・・
815 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 06:17:58 ] 文字列の連結は + で行う言語が主流ではあるけど & で行う言語や . で行う言語もあるんだよな。
816 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 07:35:23 ] >>810 > record.assign( name ).append( "\t" ).append( address ) … ; record = name + "\t" + address + … ; ⇔ (python) '%s\t%s' % (name, address) ⇔ (python) '%(name)s\t%(address)s' % locals() ⇔ (glib) g_strdup_printf( "%s\t%s", name, address);
817 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 08:25:33 ] >>810 sprintfも知らない奴は発言するな
818 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 08:34:05 ] >812 iotreamがC++入門者への糞設計洗脳プログラムとして作用してる。
819 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 09:22:22 ] 自分の頭が悪いだけなのに無意味な仕様って テレビと同レベルだな
820 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 09:38:16 ] お前ってテレビ大好きだなw
821 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 09:38:33 ] >>812 その二つは用途が違うだろ。 C++のstringはイミュータブルじゃないからstringbuilder系のクラスいらないし。
822 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 09:50:21 ] 文字列の連結に演算子が要らない言語もあるね。 他の言語がどうだってのは余り意味がないよ。
823 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:31:48 ] LinuxがC++不要言ってたんだし 2chのC++関連のスレ潰していこうぜ
824 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:38:56 ] 半端なとういうか わからないならおとなしくbetterCとして使ってればいいのに ヘタに手を出してクソコードを生み出してる奴を叩いてるのであって
825 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:54:45 ] そりゃ、Linuxの開発にC++は邪魔だろうな。 Cはヘッダ共有しなくても、関数引数リストがわかっていれば他人の書いたソース・オブジェクトと連携できるが、 C++はヘッダ共有しないと話にならないし。 最初から統一された設計の下に作るならC++がいいが、大勢の思いつきの寄せ集め的開発手法にはあわんわな。
826 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 11:20:47 ] 名前マングリング位統一しとけよハゲ ということか
827 名前:デフォルトの名無しさん [2009/02/08(日) 11:28:15 ] Linusは2ちゃんの味方。 彼はレベルが高いよ。
828 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:23:26 ] >>803 ないんだろうな。数学コードまったく書かない文系なんだろ。 「特殊なケース」とかアホすぎる。お前ゲーム一切やるなと
829 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:25:07 ] 記号のオーバーロードがどんなに危険か想像つかない奴は幸せだよ たいしたコード書いてないって自分で白状してるようなもんだ
830 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:33:28 ] ゲームの場合は計算量を抑えるために 演算子オーバーロードを敢えて使わないケースもあると思う。 a = b * c; とか、無駄なテンポラリオブジェクトを作って、 そこからの代入が発生してしまうので、 これが行列だったりしたら結構無駄が多くなる。 Matrix a = b * c; なら最適化効くからいいけど。 演算子オーバーロードはもっと計算量がシビアに効いてこないプログラムや値で 使った方がいいと思われ。 まあ、分数や複素数程度ならいいんじゃない?
831 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:38:42 ] つ Expression Template
832 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:43:01 ] もう好きにすればいいじゃないか。 C++が使いたい奴は、勝手に使ってもらって構いません。 わたしとあなたが出会わなければいいだけです。 C++の演算子オーバーロードは、抽象データ型を直感的に(原始データ型と同じように)扱うためにあるんだよ。 演算子オーバーロードをしないのであれば、別にC言語で十分同じようなことはできる。 TMPは、したいと思うけど、あれはコンパイラががんばっているだけだから、 何か取り決めを決めて、Perlを通して、C言語を吐かせた後にコンパイルすれば、どうにでもなる。
833 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:47:01 ] 複雑な計算式になると、関数呼び出しだけじゃ訳分からんことになるので 演算子オーバーロードは貴重だぞ
834 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:54:29 ] >>833 計算はFORTRANだろ、常考
835 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:55:52 ] >出会わなければいいだけ まったくそのとおり。 勝手に演算子オーバーロードでも使って、見た目キレイに書いて、 バグが出た時には勝手に死んでくれてればいいんだが、 オレのコードにそんな不便なものを混入されたら迷惑なんだよな。
836 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:58:37 ] まぁぶっちゃけ演算子オーバーロードは 文字列と数学系以外使わないからどうでもいい あとはboostが変態的な使い方してる位か つうかC#にもあるんだがそれには文句ないのか
837 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:59:06 ] 1 * 2は*(1,2)っていう関数適用の構文糖衣 ただその構文糖衣に「かけ算」っていう暗黙の解釈が存在するのが混乱の元になってるんだろうよ オーバーロードなんて((Int,Int), *)と((MyT, MyT), *)っていう代数構造を示す組が同時に存在してるだけじゃん それに伴う暗黙の変換は場合によっちゃ厄介だけどさ
838 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:00:03 ] >>835 数値クラスの場合は関数で書いた方がバグは多いと思うぞw
839 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:03:36 ] バグを減らすなら暗黙の型変換を一切禁止しちまえばいい
840 名前:835 mailto:sage [2009/02/08(日) 13:21:03 ] バグが出やすい出にくいの話なんてしてないよ。 バグった時にひどい目に逢うと言っている。 演算子オーバーロードだけじゃない、継承もそうだし、コンストラクタもそうだし、 カプセル化と称するインターフェイスの共通化もそうだ。 オブジェクト指向はなんだか宗教みたいになってるよ。たいした功績も無いまま、 キミ達のような信者が必死に信仰してる。 そういう信者が多い方がこっちとしては希少価値が上がって助かるけどなw
841 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:21:47 ] a * b - c * d a.multiply(b).subtract(c.multiply(d))
842 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:23:56 ] 論理記述より数式記述のほうが直感的というのもどうかと思うが
843 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:26:39 ] 酷い目に逢うという思い込みで語られても
844 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:26:54 ] メンバ関数の呼び出しも構文糖衣なんだよな thisもパラメータであることを考慮してみると xの型をTとしてx.fって呼び出しはcall(x,T::*f)であると考えられる
845 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:27:31 ] ひどい目に合うって経験談だろ。
846 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:27:34 ] 外部関数をメンバ関数であるかのように呼べる言語もあるね
847 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:27:57 ] >>845 具体例を挙げない体験談ほど胡散臭いものは無い
848 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:30:00 ] >>847 まあそうかも知らんがめんどいしこれだけのやつらが言うって言うのも何かあるとは思うだろ。 キミはどのくらいの規模のプロジェクトをどんな立場でどのくらいやってきたんだい?
849 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:33:10 ] 構文糖衣かどうかより、シンプルな問題はシンプルに書きたい。 その辺り C言語はバランスよく出来てる。 その意味では、string の + はアリだと思うけど 一般のクラスに対しても + を overload できるのはやりすぎちゃったよね
850 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:35:12 ] 何年も保守されてるプログラムでも 普通に文字列の + とか使われてるが、 何の問題も起きた事無いけどな。
851 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:35:17 ] >>849 やりすぎとはまったく思わない。 必要ないときは使わなければ良いだけ。
852 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:35:38 ] そもそも隠蔽化と継承・多態はセットである必要があるのか? 隠蔽化だけならモジュールプログラミングなんだっけ?
853 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:36:18 ] >>851 きみみたいなのがプロジェクトで深刻な問題を引き起こしてるんだよって話
854 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:38:21 ] だから具体例上げろよカス
855 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:39:54 ] 一般化の利点は取捨選択ができること stringの+とか一部だけ許すってのは、その一部のクラスを言語の仕様に組み込んでしまうということ 特殊化より一般化
856 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:40:13 ] まあプロジェクトリーダーになったらわかるよ。 なれないと思うけど。
857 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:41:00 ] ゴミを大量生産する一般化。
858 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:42:47 ] >>849 言語仕様としてはアリだと思うけど。 どう使うかは設計レベルだから、言語仕様ではなく実際の運用の話になるんではないか?
859 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:43:40 ] それは取捨選択ができない人間が使ってるだけかもしれない、それだけの根拠で言語を叩くのは間違い ただ、使えない人間が沢山存在するような言語である点は褒められたものではない
860 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:45:44 ] >>859 それは個人で使うならいいけど大規模プロジェクトでは問題ありと結論できない? C++は当初(今も?)大規模開発での有用性をうたってたけど
861 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:47:49 ] そんなことを言い始めたら、どの言語も程度の差あれ、全て問題ありだろ。
862 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:47:59 ] MSやgoogleは、とにかく優秀な人間を集めてさえいれば大丈夫、と結論付けたようだな 他にそんなことが出来るところがあるかどうかはともかく
863 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:48:20 ] 程度の差が問題なんだろ
864 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:50:13 ] だな 全部アセンブラで書くかって話だ
865 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:51:21 ] そこまで言わなくてもCでいいじゃん
866 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:52:34 ] Cなんてメモリリークさせ放題の糞言語だろ
867 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:53:56 ] え?w
868 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:54:02 ] 「子供の手の届くところに置いてはいけません」ってのがふと浮かんだ。
869 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:54:14 ] 速度があまり要求されないならJava、そうでないのならC これで十分だけどそう結論がついちゃったら一部のコン猿達がおまんま食い上げだから C++は凄いとかLLでコスト削減とか関数型がクる!とか色々
870 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:55:03 ] >>867 malloc使ってメモリリークしてないプログラムを見た事が無い Cは糞言語
871 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:56:13 ] メモリーリークにおいてmalloc/newに違いがあるの? スマートポインタ云々はまったく別問題だぞ
872 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 13:59:40 ] スマートポインタ云々を別問題にされると困るんだが
873 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:00:25 ] まあ、C++は良くも悪くも面白い言語ではあるよ。 。。。最初だけなw
874 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:00:40 ] >>870 たぶん、3つかそこらしか見たことが無いんだろうな 丁寧に書けばCでもアセンブラでもメモリリークなんて起こさないよ
875 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:02:48 ] >>870 >malloc使ってメモリリークしてないプログラムを見た事が無い 私がいるセカイはこんなに糞なんですよ、という告白ですか。
876 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:03:29 ] つまりC++上で派生した技術をC++の利点として挙げているわけですね。 それは必ずしも間違ってはいないけど 当初C++がCへのトランスレーターとして存在していたことをみても C++のメリットとは言いがたいし、そもそも組み込み系のCとかだと違うアプローチで メモリを扱うことによって回避している。
877 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:05:08 ] >>874 演算子オーバーロードはちゃんと使える人が少ないから糞で、 mallocはちゃんと管理できる人が少なくても丁寧に書けば大丈夫!か。 何というダブルスタンダード。
878 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:05:55 ] メモリの管理もできないような人は、プログラミングしないでください。 malloc()で、メモリリーク起こす人がいるから、C言語が糞言語だと言うのは、 演算子オーバーロードで、混乱を招く人がいるから、C++が糞言語と言うのと同じだ。 使う人が問題なだけであって、それ自体は問題ではない。
879 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:07:43 ] 特にエラー時のメモリリーク管理が出来てないプログラムが多い。 あるいは、管理はできてるけど、ifの中に毎回大量のfree書いてるような糞コードとか。
880 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:08:29 ] いやいやスマートポインタがあるからなんでもOK!っていうデスマプロジェクトがあってねw 夢の技術を妄信しておれたち頭良すぎるから納期に間に合わずバグてんこ盛りで納品! もうあほかとね。昔から自前で回避してた技術をすべて否定して夢の技術を妄信するってどうなんかと。
881 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:09:26 ] 多分それ、newを生で使ってもリークし放題なプログラム書くだろうな。
882 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:11:21 ] 俺組み込み系だからよくわからないんだがスマートポインタ使えば回避できる問題ってなんなの? newもmallocも正しいタイミングで開放できなきゃ分断化でリークと変わらず問題がでるんだが
883 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:15:12 ] そもそもC++は例外があるからなあ。 自分で例外使わなくても、ライブラリが例外投げることもある。 ちゃんと毎回try-catchしてdeleteしてんのか?
884 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:15:33 ] 原理がわからないまま便利な機能だけを使ってもロクなことにならないってことだな
885 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:18:30 ] COMの扱いが分からずCComPtr使わずリークさせてるのもあったな
886 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:22:46 ] スマートポインタの仕様を使ってコードが特定の状況において、 メモリリークを発生させないことが証明できない限りは安全とか言っちゃ駄目なんだね コメントに証明を書かないとね でもそこまでするならコードが仕様の証明になる言語が欲しいわ
887 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:25:10 ] つまりくれくれ君、かつスマートポインタ使ったんだから このバグはスマートポインタのせいだから直しませんよってスタンスなんだね。わかります。
888 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:26:00 ] スマートポインタって、馬鹿のための機能って感じだよね。 RAII 程度に抑えておけばよかったのに、欲張ったあげく ポインタを完全に置き換えられるわけでもないから 結局新しいバッドノウハウを生み出している。 スマートポインタ使う時に気を回す手間で、 まともに free やdelete が書けるよ。まともな人なら
889 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:28:42 ] そう主張する人に限って例外安全に書けてないんだよな
890 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:29:46 ] プロセス終了すれば開放されるから別にいいじゃん
891 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:30:04 ] まともな人が書いてまともじゃない人がメンテする時もあるからねぇ。 そもそも例外とかスマートポインタを使わないメモリ管理は、free/deleteの箇所が分散して、まともな人でも見落とす/見づらいコードになりやすい。
892 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:30:28 ] 実行中にどんどんメモリ増えたら困るじゃんw
893 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:31:57 ] そらスマートポインタにしろなんにしろ制限があるからね 原則として特定の状況の元、リークしない事を保証するって仕様なんだから 必要条件が満たされない状況においてはリークしない保証ができないし だから「スマートポインタのせいだから直しません」ってのはまず無理だと思うがね
894 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:32:21 ] あたりまえだろ
895 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:32:40 ] まあGCほどオバカ仕様じゃないからね。
896 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:35:40 ] FireFoxもGC採用してからアホになった
897 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:04:48 ] 毎日再起動すればいいじゃん みんな無駄に求めすぎ
898 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:11:32 ] >>897 お前はGCよりオバカそうだな。
899 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:19:37 ] >>898 私は君みたいにおりこうさんじゃないからね 君たちがちゃんとやってくれればいいんだよ
900 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:07:03 ] かしこまりました。 その代わり給料上げてね。
901 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:11:18 ] >>831 残念ながら式テンプレートでも、排除しきれない例がある。 ttp://d.hatena.ne.jp/Cryolite/20040513 operator =とは別に、一時オブジェクトを生成しないassign関数を用意しているから使い分けろという形。
902 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:11:56 ] FireFoxでニコニコ見てるときガクガクするようになったのはGCしてたからなのか
903 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:22:50 ] flashで動画再生するとmplayerで再生するより2倍(athlon64 3000+でのcpu使用率比)重くなる
904 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:41:24 ] アセンブラから上は全部構文糖なんだよ。 あの構文糖は甘すぎて不健康とか飴玉なめながら言ってんじゃねーよ、とか 思いますです。
905 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:53:34 ] アセンブラも構文糖だろwww
906 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:07:43 ] 構文糖衣を全否定するならbrainfackでCやC++と同等の生産性をあげてくれ。 C++は構文糖衣が副作用を伴いすぎてることが問題。 なかには糖衣ですらないものも。
907 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:26:19 ] C/C++はbrainf*ckの構文糖ではないが・・・
908 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:28:33 ] >>906 oh,miss spell
909 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:29:02 ] 構文糖衣つまり、Syntactic Sugarを勘違いしてないかな。 既にある構文と完全に同じ意味の構文として置き換えることのできる構文のことでしょ。 例えば、C言語で言うところの(*(p + i))とp[i]の関係や char a[] = {'f', 'o', 'o', '\0'}とchar a[] = {"foo"}またはchar a[] = "foo"の関係など。 >>904 ,905 意味不明だな。これがC言語使いの発言なら、とても恥ずかしく思う。 ああ、C++使いの発言でありますように。
910 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:31:58 ] >>906 Fuck you
911 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:33:17 ] マシン語に構文がないと思ってるのだろうか?
912 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:35:42 ] fuch↑you↓
913 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:36:15 ] フーホヨウ?
914 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:39:19 ] 芙蓉
915 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:54:06 ] 楓
916 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:59:12 ] , -――- _ , - _ ニニ = ー ' ´ ` ヽ 、 , ',´ィ ' ´ \ / '/ ___ 、 、 ヽ //ヽ . / '´, ' / , ,...:.:.':.´:.:.:.:.:.:.:.:.:.:.:.:.:`:.:.:.ヽ ヽ 冫:;ィ::::;' __ '′/ ,/ /':.:.:.:.;:. -―¬¬¬―- 、:.:ヽ ヽ/:/,.l:::::l':´_ハ / .,.,'' , /:,: '´ ` ', ',//;:l::::;'´ /:::/ ,' // / ,'´ i l ! . | ! , r '´ l::〈 /::::ノ i /.,' / l i l __tハ l ! .| t T¬ ト l、 ! ト、 !:::l /:; ' l./ .l ,'! l ,レ'T´ ll! !.l, l li. |', ト, _!_l `! lヾ':.l::::!l::::l l,' l ! ! ! l', l ,ゝェ 、',|',l',. ! !.l >' ,r 、 ヽ,,'l l::ヾ:!:::|.l::::! ! l ! ', . l ' / /.n.',` .'|',| '! l 0 l '' ! .l;:::l::ー':;'::/ ', !. l '., ',::''::.ヽニ.ノ, .: ::... ミニ'r l. ! ll::::ト:ヾー' ', ! ! ヽ':;:::.` ̄ ..::. ,' . l. !l::::! ';::':, ', l l ';`::::.. .::::::' ,' l !.';:::', ':;:::':, '.,! ! ';::::::::...:::::::::r--ァ ..;' .l l! l ';:::', l';::::', . ! l lヽ:::::::::::::::::ー.′ ..::;:;' l .l! ! ';:::':!,';::::', ! l !. ! ` 、::::::::::: ...::;:::'::/ ! ,'!. / ヽ::::':,!::::! ! l .l .l ! `ヽ:、:;::::':::::::/ ! ,','./ l ヽ:::';:::l l l! ', . ト、. ト、',、 !:::::::::::/ , / ./// ト、、 .l! !:::ト' l ハ . ', ',ヽ ', ヽ',\ !::::/ ///>、 、 ! ヽ!', l.l,'';;';!
917 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:07:18 ] もう900越えてんのかw みんな好きだなあ
918 名前:止しました。。。 mailto:停止 [2009/02/08(日) 20:53:29 ] 真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
919 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:57:06 ] 止まるの?
920 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:03:10 ] >>917 この景気だし暇なんだろ。
921 名前:デフォルトの名無しさん [2009/02/08(日) 21:52:35 ] Linux is obsolate! Linus is 釣り師!
922 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:17:35 ] >>916 誰だよw
923 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:09:34 ] >>914 ,915
924 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:21:36 ] 糸電話だな
925 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:28:39 ] >>837 それは甘い 1+2+3 ではどうなると思う? 1+2の結果を一時オブジェクトにコピーして、その一時オブジェクトのメンバオペレータが呼び出されて+3の演算が行われて・・・となるよ。 (+ 1 2 3) とかなら何度も一時オブジェクトが生成されない。
926 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:34:56 ] >>826 そうではない。 誰かがクラス定義をちょっといじると基本的に全部コンパイルしなおしとか。 クラスを使うだけなら、メンバ関数の仕様を固めておけばいいだけだが、 クラスの中をいじると、基本的にクラスメンバなんてメンバ関数にとってはグローバル変数同然なので影響はクラス全体に及ぶ。 統一した意思の下でクラスをいじるなら問題ないけど、勝手な思惑でクラスをいじられると影響する範囲が広すぎる。 それこそ、オーバーロードや派生がどうなっているかソースから追うとかいう自称Cエキスパート君のようになる。 ま、これはLinux風な開発をしている場合の話であって、業務で誰かが統括してれば本来起こるはずはない問題だと思うけどね。
927 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:41:53 ] >>926 バザールモデルで統一的な規約を強制しての開発はしにくい ってことを言ってるのかな >>826 が言ってるのは、ABIがグダグダ&ソース依存性が高い(例えば テンプレートライブラリはC++からしか利用できない上に、 ほとんどの処理系ではソースレベルでの利用となる)等の理由により、 低レベルのシステムプログラミングやライブラリ開発には結局向かない (それ向きの言語であると喧伝されているが)ってことだろう それぞれ別の、独立した問題だな
928 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:01:55 ] >>927 前半のとおりです。 だから、Linusがウンコと言ったところで、開発手法が違えばウンコではないわけでね。 とはいえ、複数人でソース分けて作るのは面倒くさいなぁ。 ヘッダの他人が作る部分にプレースホルダ入れてても、最後にマージとか面倒だな。 .o作るだけでもヘッダの依存性が高すぎる。