- 1 名前:デフォルトの名無しさん [2008/08/28(木) 14:48:15 ]
- 仕様が大きすぎるくせに、
実用的なライブラリが未整備。 なんかいらいらしない? こんなこともできないくせに、 なんでこんな仕様ばっかり作るんだよって。 C++ってなんであんなに肥大化しちゃったの? 名前: 仕様書無しさん E-mail: 内容: 仕様が大きすぎるくせに、 実用的なライブラリが未整備。 なんかいらいらしない? こんなこともできないくせに、 なんでこんな仕様ばっかり作るんだよって。 C++はなんでもできます。でもなんにもできてないので つくってね。的な。
- 346 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:14:44 ]
- もはや組み込み専用マイナー言語に落ち果てているのに
仕様的には肥大化しきってる ぶっちゃけCでいいじゃん 人生をかけてC++を学んだ様な奴は認められないんだろうけど(笑)
- 347 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:17:22 ]
- >>346
主な需要は組み込み、ゲーム、パッケージソフト てなとこか でも組み込みはどっちかっつうとCのがまだメインなんじゃないか? 他ではほとんど死んでるな パッケージも、本当はC++である必要が無い気がするな .NETやJavaまでいかんでも、リッチなOSを前提にできるんなら GCぐらいはあってもいいし、ギチギチのzero overhead ruleなんて必要ない
- 348 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:30:51 ]
- 結論としては、CとC++の中間くらいが一番良さそうだな。
つまり、基本Cみたいな使い方でゴテゴテしたC++の機能は使わなかった俺が正解か。
- 349 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:35:08 ]
- C++の素晴らしいところは本物のデストラクタを持ってることだ
リソースの完全な管理という点では今でも右に出る言語はないと思っている
- 350 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:38:23 ]
- >>349
そっすねw 自己管理がんばってくださいww
- 351 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:42:36 ]
- うんw
実際自己管理を頑張らなきゃならない場合ってのはあって そういう時だけはC++は本当に役に立つし、なくてはならないんだよ そういう時だけはな
- 352 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:50:23 ]
- Pythonみたいに参照カウントとマーク&スイープ併用してる言語もあるよ
C++でshared_ptr使って参照カウントは出来るが、フツーのGCより効率悪いよね 便利機能一切使わない覚悟でないとC++のコードは速くならないっつか 確実にCより遅くなる スレッドのことは勿論なにも考えてないからマルチコア時代では先が見えてるしな
- 353 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:51:00 ]
- デストラクタならJAVAのほうがマシな実装だと思うぞ
- 354 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:54:28 ]
- >>353
廃棄のタイミングを厳密に制御したいんでしょ Pythonはブロック抜けで参照カウント0になれば廃棄されるし (当たり前だがデストラクタは定義できるし実行される) 巡回参照でも大丈夫だよ
- 355 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:56:04 ]
- >>348
D言語ですね、 でも、現在迷走中。
- 356 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 18:57:16 ]
- Dは最初の狙いは悪くなかったと思うけど
開発者の独りよがりな趣味で終わりそうだね
- 357 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:01:03 ]
- >>353
Javaのはデストラクタじゃなくてファイナライザ ファイナライザは全然役に立たない
- 358 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:07:32 ]
- C++/CLI最強説
- 359 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:24:17 ]
- >>358
割と本気でそう思ってるんだが誰も同意してくれない
- 360 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:39:17 ]
- >>358
C#の方が好きだ。
- 361 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:45:55 ]
- C#もデストラクタないんだよな…
- 362 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:47:53 ]
- IDisposable
- 363 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:50:47 ]
- それデストラクタじゃなくてdelete
- 364 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:52:01 ]
- using(Hoge hoge = new Hoge())
{ //なになに }
- 365 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:53:40 ]
- 確かにマルチスレッドとかマルチプロセスに特化した言語は欲しいな。
- 366 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:54:54 ]
- うお、そんな書き方出来るのか初めて知った
C#いいな!
- 367 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:58:04 ]
- でもC#にはローカル変数とかのfinal宣言子がない…
あればいいのに あれば…
- 368 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 19:59:38 ]
- >>364
同じキーワードをあっちこっちの用途で流用するところはC++譲りみたいだな
- 369 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:00:52 ]
- >>364
それ使いたいオブジェクトの数が増えると構文が悲惨よw
- 370 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:01:01 ]
- もしかしてJavaもできるの?
C++はdeleteし忘れるからGC最高とか言ってる奴らが 結局finally節にdispose()とかclose()とかunlock()とかチマチマ書いてるのが とっても滑稽だと思って以来いい印象ないんだけど 出来るなら認識改めないと
- 371 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:05:30 ]
- スマポでええヤン
- 372 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:08:51 ]
- コンテナに入らないふざけた奴か
- 373 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:10:56 ]
- スマポが悪いんじゃないんです
auto_ptrがアホの子なだけなんです COAPとか使いたがる奴らが悪いんです 許してあげて下さい
- 374 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:17:30 ]
- まさに 「痒い所に手が届かない」
- 375 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:18:10 ]
- tr1まで標準にリファレンスカウントなスマポ入れなかったってのは、
そもそも標準にスレッドセーフという概念が無いからか? どっちみちSTLがスレッド?何それ?状態だから関係ねーけどな ヨボヨボすぎて、もうモダンなOSの主要言語の座はとっくに引退していい仕様だろ お爺ちゃんをいつまでも無理して使いすぎなんだよ
- 376 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:21:27 ]
- 0xでようやくスレッドの概念が入って
スレッドローカル変数とかが定義できるようになるらしいけどな マトモになるのはいつになるやら
- 377 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:26:31 ]
- iostreamとか、仕様練る時に変だろこれと誰一人思わなかったのかな。
- 378 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:26:44 ]
- え?マトモにする予定なんてあるの?
- 379 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:31:52 ]
- >>377
sprintfひとつですむことを だらだら << 繰り返して書くのが楽しい。┐(´∇`)┌
- 380 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:33:38 ]
- >>370
GCが便利なのはいっちいっちコピー先バッファとか 頭の悪いもの引数に用意しなくて済むからだよ。
- 381 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:40:32 ]
- shared_ptrとか使って、ただのポインタアクセスをいちいち高価なものに
置き換えたりする必要も無いしな
- 382 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:44:10 ]
- GCはshared_ptrなんぞよりよっぽど高価ですが
- 383 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:49:05 ]
- >>377
iostreamの凄いところは、初期の仕様を捨ててわざわざ新しくしたのにそれでも糞であるというとこだね。 iostream絡みの昔のコードはどのみち通らないんだから、それなら思い切って捨ててしまえば良かったのに。
- 384 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 20:54:12 ]
- マネージだからメモリリークしないと思っている人。
確かに、プログラムが終了するときにはリークしないでしょう。 けれど例えば、ある操作を繰り返すたびにメモリが解放されずに残ってしまう ということは有り得ます。Javaでも同様です。 たとえば、ArrayListにStringを追加し続けているようなものです。
- 385 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:01:53 ]
- GCは普通に使う分には便利だが
ゲームのオブジェクト管理とかやろうと思うとウザくなる
- 386 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:02:09 ]
- >>384
unmanagedでもプログラム終了したらリークはしないでしょう。 何か特別なことしない限り。
- 387 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:07:02 ]
- >>358
C++/CLIもコレクションに入れるとデストラクタが無力化する
- 388 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:08:36 ]
- まあ、そんなに参照されるのがいやならソフトリファレンスでも使えや
- 389 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:50:39 ]
- >>387
msclr::auto_handleは?
- 390 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 21:53:43 ]
- そもそもauto_handle自身のデストラクタが働かないから_
- 391 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:35:54 ]
- やっぱりmallocが最高だな。
- 392 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 23:54:57 ]
- aro
- 393 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 00:39:29 ]
- C++0x みたいな継ぎ接ぎはもういいから、新しいプログラミング言語の作成しろ。
- 394 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 01:43:49 ]
- STL を組み込みで使えないという意見があったが、
処理系のデフォルトの operator new とか std::allocator とかを使わないというだけで、<algorithm> も使うし 自前アロケータでコンテナも使うよ。
- 395 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 09:16:30 ]
- C言語を完全に駆逐するためには
pc11.2ch.net/test/read.cgi/tech/1210158702/
- 396 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 10:58:03 ]
- unixの設計のためにCを作ったように、
新しいOSのために、全く新しい言語が生み出されるであろう。
- 397 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 11:29:35 ]
- んなこたぁー、ない。
- 398 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:09:47 ]
- Be…
- 399 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:30:28 ]
- 並列プログラミングが重要視される時代なのでやっぱり新しい言語が必要。
- 400 名前:デフォルトの名無しさん [2008/10/02(木) 18:33:23 ]
- ConcurrentC
- 401 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 18:41:36 ]
- Nextだろ
- 402 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:07:59 ]
- 素朴な疑問なんだが
C++がCより開発効率が良いって主張あるよな? ひとによっては暗黙の了解になってるぽいんだが それって誰がいつどうやって比べたの? ソースはあるの?
- 403 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:32:14 ]
- 鉛筆を一本ずつ数えるのとダースで数える程度の違い
ヘッダファイルの仕様化度が高いともいえるけど 所詮はマクロアセンブラを構文化しただけの言語 いくらでも非効率にも効率的にもできる
- 404 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:34:08 ]
- ↑に付いては知らんけど、COBOLの方がJavaよりも開発効率がいいなんて言い出すCOBOL脳には成るなよ。
- 405 名前:404 mailto:sage [2008/10/02(木) 23:36:10 ]
- >>402
- 406 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:40:42 ]
- >>402
高級言語の中で比較するんならどっちみちC++の生産性は低い それ以上に再利用のしにくさが致命的 ABIが糞でコンパイル時計算への依存度が高いからな
- 407 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:41:06 ]
- 一応COBOLは開発効率を重視した言語だ
ただし、プログラマー向けじゃないけどね
- 408 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 23:46:15 ]
- ソースは?脳内?
- 409 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:01:41 ]
- 個人的には、高級言語の皮を被った低級言語って感じでいいんだけどな。
基本Cでいいんだけど、少しだけ楽したいみたいな。
- 410 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:12:25 ]
- ソースもなにも両方でプログラム作れば感覚でわかるだろ。
- 411 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:42:23 ]
- CがC++よりいいって・・どうやってWindow表示すんの?MFCとかATLとか使わんの?クラスも使わんの?
CreateWindow(........)とかばっかしてがんばるの?なんなの?ばかなの?
- 412 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:50:29 ]
- いい加減、開発の目的や背景を理解できるようになってくれ
- 413 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:06:05 ]
- >>411
酷い馬鹿を見た >>1から1000回読み直せ
- 414 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:17:32 ]
- 適切な設計をすればCよりは保守性も効率も上がると思うんだけど。
なんか極端なアンチが沸いてるが(俺ももちろんC++が楽だとは言わんが)、 必死に叩いてる奴って、クラスやテンプレートの使い方のセンスが無いor 理解できてない馬鹿ばっかりじゃないの? 単純に考えてC++はCに機能が増えただけなんだからCより悪くなるのは 機能の使い方が悪い以外に考えられん。
- 415 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:28:59 ]
- > 単純に考えてC++はCに機能が増えただけなんだからCより悪くなるのは
> 機能の使い方が悪い以外に考えられん。 「キッチンシンク」という言葉は知ってるか? なぜMultixが失敗してUnixが生まれたかを知っていれば 「大きいことはいいことだ」という単純素朴な発想は出てこないはずだ C++みたいな半端な言語で何でもやろうとするのではなく、もっと高級で ずっと生産性の高い言語とCを組み合わせるという選択も普通にあるんだが、 それも見えていないようだね
- 416 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:39:29 ]
- まぁ、実際を考えると、マルチプラットフォームで使えるちゃんとしたコンパイラがあるかどうかってのもあるなw
- 417 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:49:20 ]
- >>414
なるほど、C++の標準の策定者は「理解できてない馬鹿」で「機能の使い方が悪い」 からiostreamとか作っちゃうわけだな
- 418 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 02:59:05 ]
- 実用性は無くても、オブジェクト指向言語の可能性を立派にアピールしたよ
- 419 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 03:01:58 ]
- C++をOOの代表であるかのごとくに言ったらOO信者の猛反発喰らうぞw
- 420 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 03:14:54 ]
- C++はOOのOOらしさを極限までそぎ落とし、効率に振り向けた言語だからな
- 421 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 03:55:47 ]
- オブジェクト指向言語の可能性←大間違い
オブジェクト指向の可能性←ギリギリおk
- 422 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:01:16 ]
- SimulaとSmalltalkに失礼だな
- 423 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:07:21 ]
- 実用性皆無の実験言語が一般にアピールはないだろ
影響領域が違いすぎで失礼とかないわ
- 424 名前:414 mailto:sage [2008/10/03(金) 04:21:43 ]
- >もっと高級でずっと生産性の高い言語とCを組み合わせるという
>選択も普通にあるんだが、それも見えていないようだね なんか偉そうに言ってるけど、C++は実行効率最優先の言語なんですが。 生産効率が良くて、速度やメモリ効率を犠牲にしてでも高級な機能を持つ言語が欲しいのなら 最初からC/C++は選択肢に入らないだろ。見えてないのはお前の方だ。
- 425 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:34:31 ]
- その低劣な生産効率を補えるほどに速くすらないのが問題なんだろ
vtbl持たなきゃならないのはオブジェクト指向言語の本質的な非効率性だから C++でも他でも一緒だしな
- 426 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:39:32 ]
- 他の言語は知らないが、GNUとMSのコンパイラは
純仮想関数を使わない限りVTBLは使われないよ
- 427 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 04:54:09 ]
- そりゃ使わない物は使わないし、まともなコンパイラなら省くに決まってる
でも継承を有効利用するにはvtblはないわけにはいかない 継承と多態性はオブジェクト指向の根幹だ
- 428 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:03:58 ]
- だから、継承とプリモにはVTBLは必要ないぞ
COMとか使ったこと無いか?アレだ
- 429 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:07:31 ]
- インスタンスが自分が何者かを知らずにどうやってポリモやるんだ?
- 430 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:11:22 ]
- オブジェクト指向がどうこうってより、同じような設計をしようと思ったら
Cでやっても同じようなコード(vtblと同じ、関数アドレスを介した呼び出し)になるわけで。 原理的に無理なものをどうこう言っても仕方無いだろ。 ただ、D&Eに「多重継承をサポートする為に、vtblを”単一継承なら使える最も速い方法”で 実装しなかった(加算1つと代入1つ増えた)。ここだけは唯一ゼロオーバヘッドルールに 違反することになった」って書いてあったけども。 それすら気になるほど速度を重視するのならそもそも仮想関数を使わないor vtblが必要になるような仮想関数の書き方をしなければいい。 そんな滅茶苦茶ギリギリで設計の自由度も無い状況で仮想関数使うような 多態性を用いる設計を使おうとする方がおかしい。 >>428 あまり詳しくないがCOMはvtbl使ってるはずだよ。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:14:35 ]
- >>430
そうそう だから効率が重要な場合はあらゆるOO言語は使えないってこと それはC++だろうとなんだろうと一緒な訳で
- 432 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:26:13 ]
- 勘違いさせたが、手続き型言語においてVTBLが必要となる一つの条件としてCOMを挙げた
手っ取り早くは適当にリバースエンジニアしてもらえればわかるのではないだろうか あくまで、コンパイラの実装の話だけどね
- 433 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:42:21 ]
- >>412,413
結局何も説明できずに馬鹿って言うだけなの?。なんなの?バカなんですか? C++のなにが難しかったんですか?何がわからないのかわからないのですか?
- 434 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:47:37 ]
- >>433
真性の馬鹿に何かを教える様な物好きに、そんな簡単にめぐり合えるとでも思ってるの?
- 435 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:54:05 ]
- 何か眠気でちゃんと読んでないのかな
C++は手続き型言語 要するに仮想関数程度じゃインスタンスを特定できるから オーバーヘッドはCの関数を呼び出すのと引数分しか差がない 純仮想関数のようにインスタンスを特定できない場合に限り VTBLを通して関数が呼び出される これはルックアップテーブルだからそれなりに高コスト こんなもんで理解してくれ
- 436 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:54:57 ]
- あ、ただのバカアンチなんですね。了解しました。テンプレートは難しいですもんね。
VisualBasicという言語をお薦めしておきます。
- 437 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 05:59:09 ]
- >要するに仮想関数程度じゃインスタンスを特定できるから
何だものすごいバカか
- 438 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 06:01:23 ]
- >>435
仮想関数はvtbl使わなくて純粋仮想関数は使うって言ってるの? 本気で言ってるの? よく眠って頭冷やせよ
- 439 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 06:32:06 ]
- 仮想関数批判はC++というかJavaとかC#とかもろもろ全部だしあんまし
意味ないような。 しかもそんな奴はむしろC++でメタテンプレートでも極めればいいし C++向きだと思うが。
- 440 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 06:47:47 ]
- OOの本質的なオーバーヘッドとC++固有の問題を
ごっちゃにして叩く輩が多いからな
- 441 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 09:30:53 ]
- MFCはSTLが固まる前に発売されたから勝手に作った独自仕様などと言れれるゆわれはない。
- 442 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:06:47 ]
- >>436
TMPなんぞを嬉しがってるのはC++信者だけだろ パターンマッチングやダックタイピング/structural subtyping、 ファーストクラスの関数、lambda式、クロージャ 今時の高級言語がもっとマシな形で備えている機構が無いために C++信者はあの醜く汚いバッドノウハウを金科玉条のごとくに 有難がってるんだろ しかもC++からソースレベルでしか再利用できないというデッドな技術だから C++信者はあくまでもC++にしがみつくしかない タコツボだな
- 443 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:26:23 ]
- >>442
>>436のアイデンティティが崩壊しちゃうからそれ以上言っちゃダメ
- 444 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:35:40 ]
- >>442
お前みたいな流行りの言語機能好きは流行りの言語をそのときどきに勉強して 使ってればいいんじゃねーの? Haskellでlambda使いまくりのWindowsプログラミングでもやってりゃいーじゃん。 なぜそれが現実的じゃないのか、なぜ誰もやってないのか、なぜ言語機能だけで ソフトは作れないのかを知るといいと思うよ。
- 445 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:38:54 ]
- >>444
Javaですらlambda式やクロージャを取り入れようとしてるのに今更何言ってんだ?
- 446 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:45:19 ]
- >>444
自分に都合の良い解釈ばっかしてると馬鹿に見えるよ
- 447 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:45:27 ]
- Cより古いLispをガン無視して単なる「流行」とか言ってるのが笑えるな
- 448 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:46:53 ]
- 連投乙
- 449 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:01:49 ]
- >>445-447
そんなにむきになるなよ。お前は悪くない。時代が悪いんだ。
- 450 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:04:37 ]
- >>449
いや、単純にお前の頭が悪いんだよ。
- 451 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:11:46 ]
- お前らどんだけ馬鹿馬鹿言い合えば気が済むんだよw
- 452 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:29:44 ]
- >>435
本当にC++を知っているとは思えない発言だな 仮想関数があるなら必ずvtblは作られる 静的に型が確定している場合(参照を通さない場合)には、 vtblルックアップは要らない ポインタや参照の場合は静的に型が確定しないので、仮想関数の場合は 常にvtblルックアップが発生する こんなのは常識だろ つーか、C++でどうやってポリモーフィズムを実現してると思ってるんだ
- 453 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:32:37 ]
- 自分の知っている処理系は全てvtblだが
C++にはvtblを用いて実装しなければいけないという決まりはなかったはずだが
- 454 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:34:23 ]
- >>453
ああ、確かにちと実装より過ぎる説明だったか いずれにせよ>>435が言っていることは明らかな誤り
- 455 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:40:10 ]
- つっても店頭に並んでるアプリの9割はいまだにC++製だからなあ。
やっぱOSネイティブの言語は機能どうこう以前の強力さがあるんだよな。 まあC++にもlambda/bindが来年付くしまだまだ現役続投かねぇ。
- 456 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:43:13 ]
- >>455
Windowsと同じだな シェアそれ自体が最大の強み 言語が糞でもな……
- 457 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:02:07 ]
- マイナーなもの使って人柱やるのもいやだしな
- 458 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:03:28 ]
- >>417
C++マンセーな俺も、それには同意。
- 459 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:22:20 ]
- >>402以降、誰もC++の開発効率に触れないのな
- 460 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:27:21 ]
- え、>>402以降リロードせず>>459を書き込んじゃったの?
- 461 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:30:00 ]
- Office や Web ブラウザのような巨大で複雑なアプリをサクサク動かすには
今のところ C++ しか選択肢はないんじゃないか? D はよく分からないが。
- 462 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:36:04 ]
- >>460
具体的にどのレス? ちなみに402は↓これだぞ? >素朴な疑問なんだが >C++がCより開発効率が良いって主張あるよな? >ひとによっては暗黙の了解になってるぽいんだが >それって誰がいつどうやって比べたの? >ソースはあるの?
- 463 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:36:48 ]
- MacではC++じゃなくてObjective-Cが母語なんだろ
だから、C++でなければならないというわけでは全くないだろう 少なくともOfficeみたいなリッチなOSの上に乗っかって動くアプリなら、 ネイティブコンパイルさえ出来れば、もっと動的な言語でも十分ってことになるん じゃないのか
- 464 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:44:53 ]
- >>462
単品のレスじゃなくて流れで分かるだろ >>402には「C++がCより開発効率が良いがひとによっては暗黙の了解になってるぽいんだがソースは無い」でこのスレ的にはFA出てる 何かしら覆したいならお前がソース出せ C++単品の生産効率についてなら腐るほど言い合ってるだろ
- 465 名前:462 mailto:sage [2008/10/03(金) 12:59:24 ]
- >>464
いや別に覆したいとは思ってないよ、事実関係をはっきりさせたいだけ じゃあこのスレ的には「C++の開発効率はCより高いとは言えない」でFAだな
- 466 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:15:19 ]
- >>465
大した根拠も無くC++の方が開発効率が良いと思ってる奴は確実に居るが、本当の所は誰も知らんがFA
- 467 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:15:26 ]
- C++はCを内包するので比較する意味が無い
- 468 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:18:04 ]
- また馬鹿が湧いた
C++はCを内包するので比較する意味が無い(キリッ いくらかマシに見える様に訂正しときました
- 469 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:19:47 ]
- >>467
>>415 スーパーセットは時にサブセットに劣る
- 470 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:25:17 ]
- スーパーセットである事によるオーバーヘッドが有意か否かは
開発者自身や処理系の問題であって言語の問題では無い
- 471 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:26:26 ]
- カプセル化できるだけでも有難い<C++
まあ「隠匿されたら処理の流れが解らんではないか!」とか 言い出す奴にとっては厄介なんだろうが。
- 472 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:30:42 ]
- >>470
肥大化した仕様はまさに言語の問題だろう さらにC++の場合は禿が実用性を謳ってるんだから開発者や処理系の都合も言語とセットで考えるべき
- 473 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:34:32 ]
- C++ は基本的にサブセット(C部分)に劣らない。
C 部分の性能は普通の処理系なら落ちないから。
- 474 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:43:43 ]
- >>473
流れ嫁よ (実行時の)性能を比較してるわけじゃないだろ
- 475 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:48:42 ]
- じゃあ、何が劣るの?
- 476 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:52:41 ]
- 「C++なんて駄目。Cの方がまし」という事にしたがっている奴の脳。
- 477 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 14:06:15 ]
- C++ は C よりもコンパイラの選択肢が少ないところが劣っているかな。
俺はそんなことで困ったことはないけど。
- 478 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:13:33 ]
- C++が一番ひどいのは学習コストだろう?
罠とバッドノウハウが多すぎる そしてそこまでして学習したものは、C++を使うとき以外何の役にも立たない だからこそ「バッドノウハウ」なんだけどな
- 479 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:39:00 ]
- boostはC++を象徴してる
言語仕様の貧弱さを無理やりカバーするためにマクロとテンプレート使いまくり お陰で糞みたいにコンパイル時間がかかるわ 解読不能なエラーメッセージを大量に出力するわ 仕方がないからソース読もうにも追う気すら萎えさせるわ インテリセンスはクラッシュさせるわ プログラマの時間をドブに捨てさせるにはこれ以上ないいい言語だと思う
- 480 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:41:44 ]
- 標準でソケット通信ライブラリすら無いんだから規模はむしろ小さい方だろう
Cよりは当然覚える事は多いが
- 481 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:56:55 ]
- C++作った理由の陰謀論みたいな話になってきたなw
- 482 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:33:26 ]
- ねぇ、C++擁護派ってなんでこんな馬鹿なの?ねぇ、なんでこんな馬鹿なの?
- 483 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:45:55 ]
- オブジェクト指向だけに、先人の思想を忠実に継承してるからな。
- 484 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:48:07 ]
- 反対派も大概バカだけどな
結局は適材適所 C++はアプリを作るには最低の言語 ドライバやミドルウェアを作る時にはそこそこ役に立つ言語 それでいいじゃないか
- 485 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:54:49 ]
- お前らプログラムもろくに組めない癖に文句だけは一丁前に言うなw
- 486 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:56:53 ]
- ツンデレなんだよ
- 487 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:03:51 ]
- 継承も例外もオーバーロードもテンプレートもなくして
クラスがメンバ関数とコンストラクタとデストラクタを使えるだけのちょっと便利な構造体なだけだったらよかったのに
- 488 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:05:35 ]
- つか否定派と比べて擁護派が非論理的すぎるだろ
- 489 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:10:17 ]
- 特定分野では役に立つこともあるよねってだけで擁護派扱いか
ありとあらゆる局面で絶対に役に立たないクソ言語でないと気が済まないって人たちの方が怖いです
- 490 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:13:46 ]
- ネイティブコンパイルできて、Cやasmのobjとリンクできるなら
何でもよくね? 組み込みに関しては、Javaみたいにエディション分けちゃえばいいのにと思う。 EC++とかは消えたんだろ?
- 491 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:21:50 ]
- >>484
基本的に反対派の主張は>>484に書かれてる通りなんですけど? 馬鹿で非論理的な擁護派が勝手に>>489みたいに被害妄想炸裂させて 反対派の奴らはこんな極端な事を考えているキチガイだったんだよ!!!11って五月蝿いだけなんです。 だから擁護派はなんか馬鹿が多いって言われてるんです。 わかりますか?
- 492 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:26:11 ]
- >>441
そうだとしても、STLが策定された時点でSTLベースに作り直すのが筋だろ?
- 493 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:30:23 ]
- >>492
MFCを作り直す必要はないんじゃないか? モダンなC++として書けばATL/WTLのようにただの別物が出来上がるだけで それに「MFC」という名前をつける必要がない MFCの導入時はWin16からWin32への移行促進という目的があった (ある意味今の.NETに似てる) 今や単なるレガシー技術の互換性サポートだろ
- 494 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:34:06 ]
- >>492
どっちでもいいだろ どうせウィンドウズが亡くなったらC++の使い道なんか殆ど無いんだしw
- 495 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:36:38 ]
- >>492
準拠するに足る魅力が無かったってだけだろ
- 496 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 18:47:19 ]
- MSC7.0だっけか
- 497 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:23:44 ]
- >>492
そんな筋はないと思うぞ。 過去のMFCと互換性ぶったぎることになるだろうし。
- 498 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:34:27 ]
- >>490
一応、ホスト環境とフリースタンディングって区分けが標準にある。 誰も意識していないけど……。
- 499 名前:デフォルトの名無しさん [2008/10/03(金) 19:57:41 ]
- 492 タコ殴りw
- 500 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:07:38 ]
- 未来の言語
C{ ここC文法領域 } C++{ ここC++文法領域 } Perl{ ここPerl文法領域 } もうこんなのでいいよ
- 501 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:10:31 ]
- むかしXMLでそんなことしてるのがあったな
- 502 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:32:59 ]
- >>500
search.cpan.org/~ingy/Inline-0.44/Inline.pod もっとだいぶ鬱陶しいけど、もう Perl にあるから全部 Perl でいいね。
- 503 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 21:43:06 ]
- Союз Советских Социалистических Республик
- 504 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:00:19 ]
- >>465
いろんな統計を見たことがあるはずだが、手元にある分では、行数に関するものしか見つからなかった。 Code Complete とラピッドデベロップメントに、ファンクションポイントあたりの行数が C の方が C++ に比べて 2.5 倍多いそうな。
- 505 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 22:29:31 ]
- >>504
ただの興味なんだが、その「いろんな統計」が是非見てみたい。 個人的には「ファンクションポイントあたりの行数」では開発効率は測れない(根拠として弱すぎる)と思うし。
- 506 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:23:33 ]
- >>492
確かに筋だな。 ttp://up2.viploader.net/pic2d/src/viploader2d465723.jpg
- 507 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 01:36:10 ]
- ↑面白い事をやったつもり
- 508 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 02:13:47 ]
- >>494
言っておくが家庭用ゲーム機およびPCのゲームは殆どC++だぞ 一昔前はCで開発してるところも多かったが。 携帯ゲームはほとんどがJavaだが。 想像力無さ過ぎ。よくそれでプログラマやってられるな
- 509 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 02:15:16 ]
- 訂正、携帯電話のゲームは。
- 510 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 08:36:46 ]
- どうして開発言語が C から C++ に移行したの?
- 511 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 09:01:16 ]
- >>510
ゲーム開発の規模がデカくなり、プラットフォームをまたいで開発することが 増えるに従って、毎回書きなおしするような開発は非効率すぎるということで 業界全体がそういう流れになったんだと思う。 勿論Cでもマルチプラットフォームで使いまわしの利くコードは書けるけど、 それだけのセンスがあるなら、C++でプラットフォームをまたぐクラスライブラリを書けるし、 よっぽど解りやすくて保守しやすいコードになる。 かといって富豪プログラミングが許されるわけではないし(オブジェクトが裏でやっていることの 時間的・空間的コストが想像もつかないようでは話にならない)、アセンブリ叩く場面もあるけども。 中小では未だにCのところもあるみたいだけどね。
- 512 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:41:29 ]
- >>511
なるほど。 ゲームでは C++ が C より生産性が高いということですね。
- 513 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 12:45:37 ]
- 一般論としては、OOが非常に適している分野とそうでもない分野があると思う
関数型が向いている分野とそうでない分野があるように GUI、シミュレーションなんかはモロにOO向きで ゲームもそれに相当するだろう CでOOっぽいことも出来るが、デバドラぐらいならともかく Xのツールキットぐらいの規模になると結構苦しい印象があるな
- 514 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 13:56:46 ]
- >>512
待った、いちがいにそうとはいえない 業界最大手クラスのゲームデベロッパでは例外とSTLとBoostとRTTIとほぼ全ての演算子オーバーロードとほぼ全てのテンプレートが禁止だよ その他の大手も大同小異だ それってC++なのか?
- 515 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:10:51 ]
- >>514
例外やBoostやRTTIはわかるが(コンシューマなら特に)、テンプレート禁止ってのはわからんな。 一体どこの会社を指して業界最大手とか大同小異だとか言ってるのか知らないが クラス使ってりゃ十分C++だと思うけど。 まさかツール作るときもそれら全部禁止なの? 数値演算まわりのクラスにも演算子オーバロード禁止?
- 516 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:12:06 ]
- C++を使わないと企画が通らないけど
C++を使うと開発が立ち行かない
- 517 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:24:56 ]
- つーかさ、同じC++でも例外の有無でまったく別の言語だよな
コードの再利用なんて不可能なんだし
- 518 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:29:55 ]
- >>515
不安定な俺クラスよりも、boostの同様なクラスを使ったほうがコードがすっきりしたりする。 .俺の10年がboostに塗りつぶされていって泣けるorz
- 519 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:36:08 ]
- 本来C++の諸機能と例外は不可分なんだが
なぜか世の中には例外無しのC++という処理系や開発現場がある ハゲが泥縄式に例外を導入した歴史的経緯なんでもうあきらめるしかないが 処理系提供側も例外使えないならC++を名乗らないで欲しい
- 520 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:47:27 ]
- 別に言語の全ての特徴を実際に使うかどうかは関係ないでしょw
使わないコードでもバイナリレベルにどうしても影響しちゃうとかならしょうがないけどw
- 521 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:50:55 ]
- >>515
演算子やテンプレートは決められた人間が作ったものだけ使えっていうことじゃないかな。 例外を禁止する理由は良く分からないが処理系によっては例外を投げなくても重くなる 可能性があるからかな。
- 522 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 14:55:12 ]
- コンストラクタの失敗とかはは例外以外のまともに捕まえる方法がないからな言語的に
結局errnoみたいなものに頼ることになって何のためのオブジェクト指向なのかという話に
- 523 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 15:10:54 ]
- > 演算子やテンプレートは決められた人間が作ったものだけ使え
それって出来の悪い兵隊集めて仕事する三流請負業務系の発想だな 現在そういう系統ではC++は死滅していると認識しているが
- 524 名前:デフォルトの名無しさん [2008/10/04(土) 18:49:49 ]
- >>522
class hoge { ... }; hoge a; if(!a.ok()) goto hell; でいいんじゃね?
- 525 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 18:53:59 ]
- お話になられません。
- 526 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:18:06 ]
- といいますか、コンストラクタ内で自己完結してない時点でOOとしてはお話になりませぬ。
- 527 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:26:18 ]
- ANSI C++ 1998
ANSI C++ 2003 ときて、 C++0 が採択される、まだまた拡張中。
- 528 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:40:30 ]
- >>524
a の初期化に失敗した後は a は存在しないはず。 だから a にはアクセスできない。
- 529 名前:デフォルトの名無しさん [2008/10/04(土) 19:44:30 ]
- >>528
そこで言う「失敗」て例えば何なん?
- 530 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:52:05 ]
- >>528
>>524は、iostreamのように、失敗しても例外を投げないような設計にしてある ことが前提なんでしょ
- 531 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 20:34:59 ]
- >>529
よくあるのがメモリ確保に失敗した時
- 532 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 20:36:29 ]
- >>530
ああ、確かにそういう初期化に失敗しない設計もできるね。 しばらく RAII な設計をしてきたからそういうのは思いつかなっかた。 例外のない C++ だとクラス設計もかなり変わってくるな。
- 533 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:00:41 ]
- 某有名ゲームエンジンはC++でOOしまくり例外多用だけどね。
言語の文句ばっか言ってモノ作れないボンクラは原因は別のとこにあると思う。
- 534 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:07:19 ]
- C++→肥大化
Ruby→肥満化
- 535 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:12:10 ]
- Windows アプリ開発の主力言語が C から C++ になってしまったのは MS のせい?
MS に否定的な OpenOffice や Firefox まで C++ で開発しているみたいだけど。
- 536 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 00:27:06 ]
- パソコン屋で売ってるソフトの90%くらいがWindows用
そのほとんどがVCで残りがVBかBCCかDelphi
- 537 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 02:03:05 ]
- >>535
なんでもMSに結びつけるのは違うだろ。
- 538 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 03:37:13 ]
- てか何年前の話だww
C#に移るのかって時代に
- 539 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 03:47:22 ]
- ww
- 540 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 03:59:28 ]
- >>533
>モノ作れないボンクラは原因は別のとこにあると思う。 モノ作れないのと言語の文句を言うのは全く別の話だと思う。
- 541 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 04:52:27 ]
- 結局擁護派って自分で書いたコードしか弄った事無いから擁護できるんだよな
発言から視野の狭さが見て取れる
- 542 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 05:16:10 ]
- >>541
俺にはその擁護を否定に入れ替えるとその通りに思える それともアレか、バカが書いたC++のコードを弄ってるとC++が嫌いになるとかか? 擁護否定に関わらず、バカが書いたC++のコードがクソなのは誰もが知ってると思うが。
- 543 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 05:30:04 ]
- バカが書いた世界地図を思い出した
- 544 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 05:44:08 ]
- >>542
これはひどい
- 545 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 06:36:07 ]
- >>541
その文面からは視野の広さが見て取れない
- 546 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:07:57 ]
- スレタイとどんどん離れてくなw
- 547 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:43:15 ]
- ただのバカスレだしな
- 548 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 10:53:15 ]
- スレの趣旨とは合致してるからまったく無問題
すぐ顔真っ赤になるC++信者を見守るスレです
- 549 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:44:56 ]
- アンチまっさお、信者まっか
- 550 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:08:17 ]
- 説得力のある話を披露できない代わりに
相手の顔の色を一所懸命空想したところで、 誰もその人を支持しないどころか、むしろ発言者の顔の色が そうなってるという印象を持つだけだと思う。
- 551 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:09:17 ]
- C++ のようにマルチパラダイム言語はプログラミングが楽だ。
複数の言語でプログラム断片を作ってつなぎ合わせる方法は結構面倒くさい。
- 552 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:24:05 ]
- C++のプログラミングが「楽」とか正気とは思えん
LLなら数行で済む仕事に一体何行かける気だ 言語は適材適所で使えよ ネイティブなobjを吐く言語は要するに高級なアセンブラなんだからよ
- 553 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:50:23 ]
- 末端作業員はPerl永遠にやってな
- 554 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:51:47 ]
- 1つのプログラムは GUI からレイトレの計算までいろいろな部分が混在してる。
これらをそこそこカバーできるメジャーな言語は C++ 以外に何がある? そのぞれの部分に得意な言語を使うこともできるがリンクが面倒くさくなる。
- 555 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:53:40 ]
- 低所得スクリプターが紛れ込んで奮闘してるんだろ。
- 556 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:02:41 ]
- 厨房はこれだから困る
今時ゲームだってLuaだのPythonだのスクリプトエンジンの一つや二つ 入れ込んでるだろ gaucheの作者はスクウェアでCGのプロダクションシステムをLispで書いてる というかLispは昔からCG分野で主流で、今はPythonが取って代わっている Emacsは実際にはLispインタプリタで、だからこそあれだけ強力なエディタなんだ
- 557 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:08:44 ]
- 馬鹿が書いたコードは言語問わず糞だが
他言語に比べてC++は馬鹿が糞コードを非常に書きやすい しかもC++では優秀な開発者でもバッドノウハウを身に付けないと危険なコードの罠にはまる
- 558 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:35:18 ]
- C++&Python最強ということで終了
- 559 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 15:16:54 ]
- >>556
それはかなり金をかけて作られるゲームエンジンに統合されているからできること。 普通のアプリでそういうことをやろうとするとデバッグも含めてかなり面倒くさい。 COM や .NET で多言語のリンクをしたほうがまだまし。 C++ は C が得意な部分、OO が得意な部分、テンプレートなどを自然な形で結合できる。 これを作った禿は天才
- 560 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 15:28:53 ]
- C++ に慣れちゃったからそれが自然なだけでしょ。
「言語は人間を規定する」という訳だ。
- 561 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 15:38:13 ]
- >>559
「普通のアプリ」とやらが何をさしてるんだかわからんが 趣味で作ってるおもちゃのフリーソフトのことなら、好きにすれば? 趣味なんだしな
- 562 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:17:12 ]
- 説得力のある話を披露できない代わりに
相手の顔の色を一所懸命空想したところで、 誰もその人を支持しないどころか、むしろ発言者の顔の色が そうなってるという印象を持つだけだと思う。 と、相手の顔の色を一所懸命空想したところで、 誰もその人を支持しないどころか、むしろ発言者の顔の色が そうなってるという印象を持つだけだと思う。
- 563 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 16:37:54 ]
- >>552
ちゃんとした仕組みを作り上げれば、楽になるのだと思う でも・・・ ねぇ、、 その時間と楽さのトレードオフがなってないよ それに気づけない人がC++にのめりこんじゃうと本当に時間無駄にしてる それが楽しいならいいけど C++は、根底だけ用意して土台が何も無いから・・・ そういう人が土台を一生懸命作ってる感じ あと、何年したらまともな土台になるのやら
- 564 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:02:09 ]
- >>552
Cやアセンブラと比較すれば、相対的にまし程度のことだと思う。
- 565 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:15:45 ]
- C++のデストラクタのような頑強な後処理をCを使って手作業で書くことを考えるとうんざりしてしまう。
- 566 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:23:24 ]
- >>563
仕組みというのがライブラリのことを言ってるんなら無駄 簡単な話だ、アセンブラにライブラリやマクロを山ほど乗っけたら幸せになるか? アセンブラはどこまで行ってもアセンブラだよ C++も同じことさ
- 567 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:46:55 ]
- でも、Cと同じようにも書けるから
上手くC言語拡張として使うだけなら、良いと思うんだけどなぁ(俺はそう使ってる ベターCから抜け出せない? なんとでも言うが良いよ だから個人レベルでC++使うのはいいけど、大勢でC++使うのは勘弁です....
- 568 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:54:05 ]
- ベターCとは言うけどどの辺がベターなの?
OOとか例外とかテンプレートとか演算子オーバーロードとか便利(ということにしたがってる)な機能を 全部捨ててなおCよりベターな所って何?
- 569 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:54:21 ]
- 引きもっこりがなにいってんだか
- 570 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 17:59:17 ]
- >>567
>大勢でC++使うのは勘弁です.... 激同。 何がベターかは人それぞれだから、足並みを揃えるのが大変そう。
- 571 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:05:01 ]
- C の方が大勢で使うのは勘弁
アクセス制御やデストラクタがないのは危なかしい。
- 572 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:10:50 ]
- そんな些細な便利機能のためだけに他の爆弾を大量に持ち込む方が馬鹿げている
- 573 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:13:56 ]
- だから571のところでは、テンプレート禁止とかいろいろ制約かけるんでしょ?
それだけで572の言うところの爆弾を抑えきれるかどうかは知らないけど。
- 574 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:25:12 ]
- テンプレートやインライン関数の代わりにマクロ使いまくるほうが爆弾
例えば C++ にはどんな爆弾がある?
- 575 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:30:41 ]
- いまさらC++がむずいとか・・ww・・ゆとりには確かに無理www
- 576 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:30:43 ]
- C のマクロと C++ のテンプレートの使用頻度が全く異なるのは見ない振りですか?
- 577 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:30:56 ]
- つーか、実際というか仕事の場合、ライブラリとかでどうせ制限されるんだから、
言語がどうのってのはないだろw いくら優秀な言語でも誰も知らんかったら、実用性ゼロだw
- 578 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:42:20 ]
- マクロなんて簡単だろ
所詮文字列の置き換えなんだから挙動も明確だしあとからいくらでも追跡できる テンプレートはカオスすぎて人間が追いかけるのは不可能
- 579 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:46:12 ]
- テンプレートもmplまで行くと
チャーチ数とかbrainf*ckとかgrassみたいなのに似たノリを感じる パズル好きが趣味で遊ぶオモチャとしてはいいんだろうけどな
- 580 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:46:30 ]
- いつからテンプレートが危険視されるようになったんだ。
テンプレートメタプログラミングなら分からないでもないが そもそも理解できていないやつがそんなもの作るとも思えないし。
- 581 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:48:15 ]
- >>578-579
Boost.Preprocessorもやばい。
- 582 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:52:33 ]
- テンプレートはデバッガがデバッグをサポートしているからまだいいよ。
普通マクロはデバッガで追跡できない。
- 583 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 18:53:03 ]
- >>568
型チェックがしっかりしてるところ。
- 584 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:16:15 ]
- >>582
デバッガで追えなくて困るほどマクロを多用する事は無い テンプレートとは違う
- 585 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:18:01 ]
- テンプレートはtypedefの奥底にいつ潜んでるかわからないからな
マジで地雷と変わらん
- 586 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:45:03 ]
- Cの場合同じような処理を繰り返し書くからマクロなんてそんなに使わないよ。
- 587 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:50:34 ]
- いい加減、C++使ってるとにコストがペイ出来ない状況になってる事に気付いたら?
ドライバや3Dゲーム、フレームワーク作ってる人らはいいんだけど、それ以外のヌケサク共はさ
- 588 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 19:57:43 ]
- Cでメタプロっぽいことをやるときは
他言語でのソース生成/(cppではない)プリプロセッサを使うのが常道だろう cppは貧弱だから、出来ることもたかが知れている >>587 なぜそこで「フレームワーク」w フレームワークビジネスってのは上に乗っかる馬鹿な兵隊がいるから 成り立つもんだろう
- 589 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 20:17:20 ]
- 弱小の無名詐欺フレームワークは含んで無いよ
- 590 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 21:30:02 ]
- Cでマクロなんかほぼ使わないし見ないぞ
マクロが危険て奴の職場はどんだけレベル低いんだ? そんな奴らはCだろうがC++だろうが変わらんだろう
- 591 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 22:38:11 ]
- たまに他のプログラマが作ったマクロと識別子がぶつかって悩まされる。
ひどいときは小文字1文字のマクロがあって原因の特定に時間がかかる。 UNIX のヘッダーでさえ major とか定義していてわけが分からなかった。 そのほかにも引数が複数回評価されたり、型がチェックされなかったりすることがある。
- 592 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:03:03 ]
- じゃあ名前ぶつかってもオーバーロードで華麗にスルーするC++は最悪ですね
- 593 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:05:51 ]
- >>591
全部、殆どありえないケアレスミスじゃん…
- 594 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:12:08 ]
- >>592
型に従うから大丈夫。名前空間使うから他人のものとぶつかる確率は低い。 >>593 他人が作ったものだから避けられない。
- 595 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:15:27 ]
- いや、避けられないとかじゃなくてさ、そんな状況は現実世界じゃ発生しないのよ。
「たまに」とか「ひどいとき」とかいうレベルじゃない。
- 596 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:20:46 ]
- 何を言っても今後 C++ が良い言語に生まれ変わる訳でもないし、
世間の評価が上がる訳でもないから仕方が無いね。どうしても 必要なら使うけど、そうでなければごめん被りたい。
- 597 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:29:13 ]
- >>595
594は別世界の人間なんだから、お前はそっとしてやれ。
- 598 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:30:38 ]
- C++のネイチブコンパイル出来たら西京
- 599 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:04:49 ]
- MIN(x,y)とかMAX(x,y)を標準のCプリプロで副作用無しで書けるか?
- 600 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:10:34 ]
- C++擁護派はCのスーパーセットって何度も主張してるけどさ
だったら>>591の問題は全てC++でも起こることになるよ 当然それにプラスしてC++固有の問題も起こるから、Cより問題点が多いってことになっちゃうよ
- 601 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:12:19 ]
- >>599
C99にはinlineがある 現在でも(C99対応してなくても)主要なコンパイラはほぼ対応済み
- 602 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:21:10 ]
- >>600
スーパーセットをマイナス方向にしか考えないのか? C++はマクロの問題を解決できる機能をいくつか追加している。 inline, template, namespace など。
- 603 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:35:10 ]
- templatewwwwwwwwwwwwwwwww
マクロの問題の100倍以上大問題な機能ですねwwwwww
- 604 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:37:25 ]
- 東京から品川へ行くのに新幹線を使う様なもんだな
- 605 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:45:58 ]
- >>602
いや、むしろ逆でしょ 擁護派が都合の良い時だけスーパーセットを主張してるみたいだから 都合の悪い部分もちゃんと継承しろって言ってるだけ 大体さ>>591が言うような >ひどいときは小文字1文字のマクロがあって原因の特定に時間がかかる。 ↑みたいな奴がC言語の問題点として挙がってるけどさ、 そいつはC++使ったって小文字1文字のマクロを定義するでしょw むしろC++ならもっと素敵な大惨事になりそうだと思わない?
- 606 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:49:08 ]
- マクロといえば誰もが知ってるのがmin/max問題だろう
- 607 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:49:58 ]
- >>600に対して>>602のレスって・・
C++擁護派は都合の悪い意見はわざと間違った解釈で話題を逸らそうとしてるように見える それとも本当に理解出来ないほど頭が悪いのか?
- 608 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:50:12 ]
- >>596
だからお前にとって良くないだけで、お前が使わなきゃいいだけ。 Swingでぐだぐだなアプリでも作ってろって。 C++みたいな技術者としての基本スキルが扱えないワンランク下の技術者と して生きていけばいいだろ。
- 609 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:01:01 ]
- 他人の書いたコードはどうしようもないし、
605の「そいつはC++使ったって小文字1文字のマクロを定義するでしょw」も絶対に間違いない。 だけど、少なくとも自分の書く部分ではC++の機能でマクロを回避できば、 その分マクロの問題に遭遇する可能性は低くなるはず。 もちろん、使い込むとそっちの機能で問題に出食わす羽目になるが。
- 610 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:13:15 ]
- 小文字1文字のマクロを定義する奴なんかにC++使わせたら
何気なく足し算する時も「もしかしてこのoperator+引き算してんじゃねえだろうな」って いちいち怯えながら使わなきゃならなくなるじゃねえか
- 611 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:18:22 ]
- C++アンチは些細な問題を避けるためにどんだけ利便性捨てているんだよ。
- 612 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:23:56 ]
- マクロ云々はどうでもいいが
ABIの問題などは、本来低レベルの道具作りにはずのC++としてはちっとも 些細な問題じゃない だからMSはCOMみたいな物を作ったが COMは結局糞だったので.NETにとってかわりつつある .NETの提供する相互運用性を横目に、C++は、自分に閉じたテンプレートの 世界だけで生きて行こうとしているわけだな
- 613 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:25:39 ]
- >>608
C++ への批判を "C++ を使えない" という話に都合良くすり替えるなよw それに、"C++ は難しい" という前提で話すのもそろそろ止めようぜ Perl と同じで汚いだけなんだから
- 614 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 01:32:47 ]
- 一部の狂信者がアンチはC++理解出来ないことにしたがってるのが萎える
このスレを見る限りアンチはC++を理解した上で批判してる 擁護派のひとは的外れでないC++の批判や問題点はきちんと受け止めよう それで利点欠点を天秤に載せてC++を使う使わないの判断は勝手にすればいい
- 615 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:00:03 ]
- お互い考え方が違うんだから、お互い論理的な説明をしても話がかみ合わないのは当然。
- 616 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:11:08 ]
- そもそも嫌いならだまって使わなきゃいいだけなのに、基地外C++アンチが粘着してる
ように見えるけど。
- 617 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:12:05 ]
- スレタイ読めよ
- 618 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 02:22:23 ]
- ここは不可避で理不尽な思いをした職業プログラマの愚痴履き場
自称ワカッテル趣味プログラマの反論は、その面から見るととても低レベルで糞の役にも立たない妄言しかない ま、経験した事無いんだから想定できなかったとしても馬鹿とまでは言わないよ ただ、その自己陶酔した妄言と違って「現実に起こっている事」なんだという事くらいは覚えておいて欲しい
- 619 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:01:15 ]
- >>615
あきらかに擁護派の方が非論理的なレスが多い、 アンチが化けてるのかってぐらい擁護派はおかしい。 何度も指摘されてるし、スレ読み直すと一目瞭然だよ。
- 620 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:22:53 ]
- lambdaとかmplとか1文字マクロとか現状のコードではほとんど問題にならないような
ものを取り上げた批判が論理的には感じないけどね。 C++はCとの互換性とか、ゲームからデスクトップアプリから組み込みから科学技術 計算まで想定してる汎用言語だし、歴史も長いから情報量も膨大だし、自分に必要な ものだけを上手に取捨選択できる経験値が求められるのは確かだし、そういう意味で 難易度が高いと思うよ。
- 621 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 08:02:28 ]
- 自分に必要なものの判断なんて別に難しくないし、そんなこと非論理的な擁護派意外誰も論じてない。
難しいのは知りもしない他人が必要としたものの判断。 C++ではこれが壊滅的に終わってる。
- 622 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 08:41:21 ]
- なんか頭悪そう
- 623 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:22:58 ]
- とりあえず、頭悪い奴にC++を扱うのが無理だということだけは分かるw
- 624 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 11:13:26 ]
- >>620
ABIの問題とか色々まともな批判も出てるだろ 見たくないものには目をつぶってどうでもいい批判しかないと 片付けたがっているようにしか見えんよ
- 625 名前:デフォルトの名無しさん [2008/10/06(月) 11:30:38 ]
- C++の代わりに何を使えばいいというのだろう。
- 626 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 11:48:17 ]
- 初心者がやたらポインタ使いまくる症状になんか似てね?
今の時代、絵を描くのだって、いくらだって大きな紙は用意できるけど だからって欲張って全部使おうとする事はないと思う・・・ ハサミというものを用意してちょっとずつ切って使えばいいんだよ! 人が作ったものを人が使いこなせないってことが、今リアルにC++で起こってる
- 627 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:07:16 ]
- Dに注目が集まったのはC++への不満の裏返しだな
まあDはDで別の理由でポシャったけどな
- 628 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:14:14 ]
- JavaもC++を否定して注目集めた
- 629 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:18:15 ]
- とりあえず、自分の意見は論理的って思い込みを捨てるんだ
ここまでで論理的な意見なんて一個も出てないからww
- 630 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:22:45 ]
- >>628
Javaはサーバーサイドアプリケーションの分野ではC++を追い落としたな それだけだが
- 631 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:25:08 ]
- C#ぐらいの言語仕様&開発環境の成熟度で
Delphiのようにネイティブコンパイル&スタティックリンク可能な環境があれば いいんだがな
- 632 名前:デフォルトの名無しさん [2008/10/06(月) 12:53:12 ]
- >>624
> 見たくないものには目をつぶって >>619みたいな人のことですね。
- 633 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:58:09 ]
- >>619
本当に何度もそんなことが「指摘されてる」なら、それってつまり、 一方的で自分に都合のいい「指摘」を何度もするのが、このスレの否定派ってことだよね。 「俺よりアイツのほうが明らかに馬鹿」って言う、あまりに幼稚で痛々しい意見を、 擁護派より否定派のほうがたくさんしてるっていう証言だよね、これ。 自爆してない?
- 634 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:10:08 ]
- >>631
つcrossnet
- 635 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:15:44 ]
- 例えばさ、近いところだと
>>590 >>591 >>600 >>602 >>605 ちょっと長いけどこの流れ見てどう思う? どうみたっておかしいよね?
- 636 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 13:21:02 ]
- しかもそれに対して>>620ではさらに
>lambdaとかmplとか1文字マクロとか現状のコードではほとんど問題にならないような ものを取り上げた批判が論理的には感じないけどね。 これもありえない 擁護派はこの手のすり替えとかごまかしが多いって言われてるわけだ
- 637 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 14:35:27 ]
- C++は言語屋やハッカーからは大抵嫌われている
という印象を持っているんだが、偏見かね C++は仕方なく我慢して使う言語、だと思っている
- 638 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 15:31:57 ]
- 言語屋は現実より理想を求めるので C++ が嫌いなのが多いと思う。禿も言語屋の意見は二の次にしている。
ハッカーはいろんなのがいるから分からない。 仕方なく我慢して使うような言語なら自然と消えていくだろう。 OS と違って言語は開発側が選択しやすいんだから。
- 639 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 15:43:03 ]
- ハッカーにとってみればメモリの実際の内容が気になるだけだから
いちいちコンパイラに文句言われてreinterpret_castとか書くのが面倒になるんじゃないかな。 ところで否定派は「バカが書いたライブラリや同僚のバカが書いたコードに 煩わされるから&その上、上からC++使えと強制されるから」 とかそういう理由で嫌ってる人が多いような気がするんだが。 C++を嘆くよりその会社を辞めることをお勧めしたい。 そもそもC/C++はプログラマを信用して、誤用よりも利便性を優先してるんだから バカに書かせたらダメなんだと何回言わせr(ry
- 640 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 15:56:29 ]
- >>638
> 仕方なく我慢して使うような言語なら自然と消えていくだろう。 > OS と違って言語は開発側が選択しやすいんだから。 そうでもないだろ 現在の主流OSはLispシステムでもJava OSでもなく Cをベースにしているのがほとんどだから、それらのOSでは C系の言語は特権的な地位を占めることになる Cとの互換性は、C++を広める上では一番の強みであり、 同時に言語の中身だけ考えれば最大のネックにもなっている
- 641 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 18:47:47 ]
- 擁護派は>>638みたいな意見を見てもおかしいと思えないの?そんな馬鹿なの?
- 642 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 18:56:12 ]
- >>630
携帯のアプリも
- 643 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:02:26 ]
- C++を嘆くよりその会社を辞めることをお勧めしたい。(キリッ
- 644 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:08:31 ]
- > バカが書いたライブラリや同僚のバカが書いたコードに煩わされるから
実際C++は馬鹿避け仕様多いよな もっとも、型付けだけ強くても、型推論してくれるわけでもねーし JavaやC#ほどインテリセンス向きでもねーし テンプレートを使えばコンパイルエラーはあっさりゲシュタルト崩壊するし reinterpret_castとか長々とタイプさせたところで 相変わらずC++で自分の足を撃つのはこれ以上ないぐらい簡単なんだけどな
- 645 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:26:37 ]
- >>641
世界中の言語屋より禿一人が正しいと思ってるんだから仕方が無い 信者というのはそういうものだ
- 646 名前:デフォルトの名無しさん [2008/10/06(月) 19:39:08 ]
- gccとテンプレートは分けて使うことにしたらいい。
またはgccを使わない。 あら不思議、C++がとっても素敵な言語に。
- 647 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:00:43 ]
- 逆に言えば、新しい言語を作ったとしてどの言語で実装する?
- 648 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:06:35 ]
- >>638
逆に、今でもC++は消えていないということは、 仕方なく我慢して使うような言語ではないとも言える。 >>630>>642が挙げたように消えたところもあるし、今現在消えつつある分野もまた。 >>646 GCC以外も同じくらいだめだめだと思う。 >>647 Cじゃね?
- 649 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:22:53 ]
- VCとか6時代に比べりゃ格段にマシにはなってるんじゃね
Dinkumwareは相変わらずっぽいし セキュアCRT絡みがなにげにウゼーけどな
- 650 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:46:44 ]
- C++ が消えていないのは、商用のコンパイラが整備されているとか、
ライブラリが沢山あるとか、ネイティブに落とせてそれなりの速度が 出るとか、機能をつまんで使うならそこそこ便利だとか、C と互換性が ある程度考慮されているとか、まぁ色々理由があるよね。 C++ に消えてもらいたい理由もごまんとあるけど、代わりの言語を 提示するのは中々難しい。既に Java で置き換えられた分野もあるけど、 D とか ObjC とかはまだまだだよね。C + LL とかが最有力候補かな。 最近は C++ + LL とかもあるから安心出来ない。
- 651 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:53:52 ]
- うちの会社はみんなうれしそうに C++ 使っているぞ。
顧客から無理やり C 使わせられたときはみんなブーブー文句言っているぞ。
- 652 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:02:36 ]
- >>651
なんか可愛いなw
- 653 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:16:07 ]
- 「擁護派」でレス抽出すると粘着がいることがよく分かる。
C++に醜い部分があるのは確かだが、 後発の方がきれいなのは当たり前だろう。 Dでマングリングが統一されているのはイイと思うけど、 マイナーすぎて実用する気にはならないね。
- 654 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:19:02 ]
- マングリングとか小学校で教えられないだろ
用語選べよな…
- 655 名前:デフォルトの名無しさん [2008/10/06(月) 21:20:42 ]
- 名前がエロい
- 656 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:22:54 ]
- そうなんだよなあ。C++ は醜い。出来れば使いたくないもんだ。
演算子のオーバーロードなんて無い方がスッキリする。
- 657 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:43:58 ]
- VC8SP1はDinkumwareが気に入らないんだが、かと言ってtr1を標準装備
したので今更STLportに戻る気も起きないし・・
- 658 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:48:33 ]
- VC9の話かな?
Dinkumwareは糞だと分かっててももういいやって感じだな boost他とのからみもあるし _SECURE_SCLってみんな切ってるのかね?
- 659 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:53:04 ]
- >>656
いや、演算子の多重定義は要る。C++のは改良の余地がありまくりだが。
- 660 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 21:54:17 ]
- >>658
あ、ごめんなさい VC9SP1でした。
- 661 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 22:35:26 ]
- 演算子のオーバーロード嫌がるのってJavaの人くらいかと思ってるんだが違うのかな
オーバーロード可能な言語どころか追加定義できる言語もあるわけで あとテンプレート悪玉論唱えてる人は簡単なアプリでもいちいち自前で各型向けのlistとか作ってるの? どうしてる?
- 662 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 22:52:54 ]
- >>661後
そういうことを主張する人は、そもそも動的型付けか何かで テンプレートがなくても問題ない言語を使っているんだろう。
- 663 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:02:11 ]
- たんなる総称型なら持っている言語は多いとは思うが
C++のテンプレートとは別モンじゃないか? C#やJavaのGenericsも違うしな
- 664 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 23:06:11 ]
- >>663
日本語読めないの?
- 665 名前:デフォルトの名無しさん [2008/10/06(月) 23:06:40 ]
- コンセプトをインターフェースにすればいいだけだろ。
- 666 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:12:49 ]
- テンプレートが悪いって言ってる人間はテンプレート全く使ってないと思ってるの?
- 667 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:25:20 ]
- coutとかstringとか
ありふれた道具の裏にことごとく潜んでるサブプライムローンみたいな存在ですから
- 668 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:07:56 ]
- >>659
Lisp とか Smalltalk みたいに、関数と演算子の区別が無い言語なら何やっても良いよ。 C++ みたいな言語に入れるのは間違いの元だと思われ。
- 669 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:12:55 ]
- STL, boost, 自分で作ったテンプレートも特に問題なく便利に使えてるんだから
テンプレートに問題があってもかまわない。演算子も。
- 670 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:15:04 ]
- &&と||のオーバーロード許可してるのは明らかな設計ミスだろ
遅延評価持ってないくせに
- 671 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:17:07 ]
- そういう人間とチームで開発すると苦労しそうだから嫌というか不安。
C++ だと最初にルールを決めても破綻しそうだな。
- 672 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:19:00 ]
- お、済まん。>>671 は >>669 向けね。
- 673 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:27:25 ]
- >>666
嫌なら使うなよ
- 674 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:40:58 ]
- ぶっちゃけるとテンプレートの問題より>>669みたいな奴が開発に関わる事の方が問題がある
- 675 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:51:50 ]
- C++は問題があるから使わないってやつはどれほどチーム開発で試してきたんだよ。
C,C++は仕事でそれぞれ20,15年ぐらい使ってきが、ここ5年ぐらいC++特有の問題は たいして起きていないぞ。けして優秀な人間ばかり揃えているわけではない。 新卒でいきなりC++使わせているけどそれほどひどい使い方はしていないよ。 むしろCで作らせたほうが間違いが多いぞ。
- 676 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:54:21 ]
- テンプレートやらオーバーロードやらを自由に使わせてそれなら
相当優秀な人間が揃ってるか、問題を認識できないボンクラばかりかのどっちかだな
- 677 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 01:55:57 ]
- >>670
Lispで言ったらspecial formとprocedureをごっちゃにしてるようなもんだよな かなり笑える話だ
- 678 名前:デフォルトの名無しさん [2008/10/07(火) 02:17:43 ]
- LispはC++の代わりにならないからな。
- 679 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:20:30 ]
- >>678
意味分かんないで反応してるだろ 関数呼び出しが引数を全部先に評価しちまう正格評価のくせに &&や||を関数にしちまうなんてのは、 情報系の学部学生でもやらないレベルの誤りだろ
- 680 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:23:38 ]
- なんでC++は難しいって事になって
C++を悪く言う奴はC++を使ってない(使えない)って事になってるんだ? いや、そこまで強烈に決め付けできる幸せな脳みそだからC++使ってて幸せなのか^^;
- 681 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:37:49 ]
- C++は完璧でこの世で最も優れた言語なんだ!!!!
C++に欠点なんか無い!! だからC++を悪く言う奴はC++を理解出来ないに違いない!!!! って考えてるからだよ^^
- 682 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 04:24:22 ]
- あんまりレベルが違い過ぎると、合わせるのに疲れ果ててしまうのがC++の厄介なところ。
- 683 名前:デフォルトの名無しさん [2008/10/07(火) 04:32:49 ]
- >>679
何を問題にしてるのかさっぱり分からないのは確かだけどな。
- 684 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 04:43:10 ]
- operator&&を組み込みの&&演算子と同じ挙動にすることは絶対に出来ないんだぞ
ひどい話だろ
- 685 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 04:48:59 ]
- 前10レス読んだだけの脊髄反射レスだけど
万全でなければ使えないようにするというのも、またどうかとも思うけどね 論理演算子でトラブッた事はない訳で コードする側が保障する必要のあるものは、便利にする過程でどうやっても登場するよ。 これらはテストツールの充実で解決して欲しいね。
- 686 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 04:50:01 ]
- あ゛ーC++にテストツールとか無茶もいい所か・・・
スレタイ読まずでした
- 687 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 05:16:10 ]
- >>684
More Effective C++に書いてあるね
- 688 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 08:41:14 ]
- >>684
誰も使ってない部分の話はどうでもいい
- 689 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 08:51:14 ]
- 中途半端な使用を放置してる事は問題なのに、どうでもいいとか問題無いとか…
問題を見てない振りしてるくせに、使ってない奴はレベルが低いとか…
- 690 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 08:53:38 ]
- 使用→仕様、ね。変換ミスした。
- 691 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:00:20 ]
- >>689
で、問題になったことは? 多重継承のがずっと問題あるのに全く話題にあがらないのが不思議なんだけど 本質を突かない話なんか本当にどうでもいい
- 692 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:03:39 ]
- そんなの本質じゃないごっこはどうでもいいけど、
問題を上げればきりが無いのが C++ だな。
- 693 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:06:16 ]
- >>692
素直にこれ豆知識なって書いておけばよかったのに 顔真っ赤かよww
- 694 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:07:29 ]
- 問題があるから使わないのに、俺は問題と認識してないからと
突っ走る奴が居るのが問題なんだよな…
- 695 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:14:44 ]
- >>693
どう見ても君の顔が真っ赤だし、なんか歯軋りとかも聞こえますよ。 打鍵の音もなんか凄そうですw
- 696 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:17:29 ]
- 突っ走るって何のこと?
誰も使ってない(=使うことではない)のだから…うん? 抽象的な表現に逃げられると途端に意味がわからん 俺はこんな仕様知ってるんだぜ大会ではないんだぜだぜ
- 697 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:21:32 ]
- >>695
怒った時の君の顔が浮かんだ 普通の人は頭に血がのぼっても歯ぎしりなんかしない
- 698 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 09:22:47 ]
- >>695はもうキーボードの前にいるのか
仕事しろw
- 699 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 10:16:33 ]
- なんか校則がギッチギチのDQN学校の生徒が、
校則ゆるゆるの進学校に対して、お前のところはルールがゆるすぎるから学校の治安が悪くなるって喚いてるイメージw
- 700 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 10:26:45 ]
- >>683
int i=0; if (i++ || i++) { printf("%d", i); }
- 701 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:27:57 ]
- 落とし穴だらけでもはや正格評価で&&や||を関数化することの問題すら
C++信者には見えなくなってるのか 以下のようなif文がある if (expr) statement exprを評価して真の場合にだけstatementを評価する 常識だな これを if(expr, statement) という関数にすることを考える C++は多くの言語と同様正格評価だから、if関数を評価する前に expr, statementの両方を評価することになるが、 言うまでも無くこの時点で元のif文とは意味が異なっていることになる &&や||も全く同じだ これらはショートサーキットだから、本来右オペランドは条件付きでしか 評価されない C/C++のコーディングではその性質が多用されるが、関数化されていれば 常に評価されてしまう 禿は、無用で、使えば問題を引き起こすと分かっているこの機能を 平然と取り入れ、仕方が無いからC++ユーザはそれを避けることで 問題を回避する 些細に見えるかもしれないが、このようなものが積もりに積もって、 結果としてC++は糞の山になっているんだぞ
- 702 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:32:25 ]
- 誰も見えてなくないじゃん。 使わないからどーでもいい、って言ってる。
んなこと言い出したらCだって過去の負の遺産が大量に残っているが。
- 703 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:35:17 ]
- >>702
「お前は」どうでもいいかもしれないが「言語としては」どうでもよくないんだよ 実装者にはその無用なものを実装するコストがかかり 教育者にはその無用なものを使ってはいけないと教えるコストがかかり 学習者にはその無用なものを使わないように学ぶコストがかかり ユーザにはどこかの馬鹿が罠にはまったかどうかをチェックするコストがかかる
- 704 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:37:37 ]
- > Cだって過去の負の遺産が大量に残っているが
墓穴だな C++はCとの互換性のために、その負の遺産を全て引き継いだ上で 比較にもならないほど多くの落とし穴を自分で掘っているのだから
- 705 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:54:10 ]
- まぁ、批判するにも代替手段を提示して欲しいわなw
畢竟どの言語もみんなしょうがなく使ってるわけだしw
- 706 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:11:11 ]
- 細かいところまで見たらウンコな仕様があるのはどの言語もだいたい一緒だと思うぞ
Javaだってウンコだらけだし
- 707 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:24:32 ]
- 問題はC++のうんこは臭すぎることなんだよね
形は整ってるかもしれないけど飛び散りすぎてるし
- 708 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:33:29 ]
- そもそもCが糞なんだから、C++が糞なのは自明。
- 709 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 14:38:21 ]
- >>705
なんで代替手段を提示する必要があるわけ? 言語の批判は批判でいいじゃん それと他の言語が糞だからってのも関係が無い
- 710 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 15:54:05 ]
- C++が糞言語でないと気がすまないらしいな。
- 711 名前:デフォルトの名無しさん [2008/10/07(火) 15:59:52 ]
- >>709
結局のところ、みんなC++は糞だと思いつつも、ほかの言語はさらに糞なので 一番まともで最高なC++を使ってるわけだよ。 で、もっといい言語があるなら乗り換えたい。 しかし、そんなものはないので仕方なくC++を使ってるわけさ。 そういう状況下で、「C++は糞」とか主張しても「で、もっといい言語あるの?」 って聞き返されるのは当然でしょ。 関数型言語にはものすごい期待したんだけど、使ってよかったと思える状況って CGIとか程度じゃない? CUI全盛の時代だったらいっぱい使い道あったんだろうけどね。 結局、糞だ糞だと思いつつもC++を使うしかないわけ。 だって今ある中では最高の言語だからね。 で、もっといい言語あるの?
- 712 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:01:08 ]
- ひどい釣りだな
- 713 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:05:51 ]
- >「で、もっといい言語あるの?」
>って聞き返されるのは当然でしょ。 用途もなにも前提なしで「いい言語あるの?」と聞き返すのは そりゃ莫迦にとっては当然かも知らんが。
- 714 名前:デフォルトの名無しさん [2008/10/07(火) 16:07:38 ]
- >>713
だってC++は用途を問わず最高の言語だからね。 CGIを書くには最適ですっていう言語があったとしても代替にはならないでしょ。 そう思わない?
- 715 名前:デフォルトの名無しさん [2008/10/07(火) 16:12:56 ]
- 換言すれば、C++で出来ることは全てカバーしていなければ代替にならない。
で、もっといい言語あるの?
- 716 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 16:14:30 ]
- 釣りもいいけどageないで欲しいな
- 717 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:01:55 ]
- >>694
突っ走るって、現実に&&や||を定義するやついるのか?Boost.Lambdaくらいしか知らないが。 .や.*と同じようにこれも禁止しなかったのは間違いだと俺も思うが。 >>705 C#のture/false演算子はC++の&& ||よりましだと思う。
- 718 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:35:54 ]
- 禁止するよりも力尽くでも本物と同じ動きに出来るようにするべきだった。
- 719 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:45:32 ]
- ageている奴は発言が面白すぎるので愉快犯と見た
&&はテンプレートの中で型が確定できない状況で使ったらセマンティクスが 全く不明になってしまうね それはショートサーキット評価されるのだろうか、されないのだろうか?
- 720 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:09:15 ]
- >>701
言いたいことは判るけどさ、それで問題が起こるようなケースってのは コピーやキャストされてしまうような時だけであって、そうなるかもしれないってのが頭にあるなら できる限り避けましょうと、参照にしたりすればよく、逆に高速化が必要ならオーバーロードしたりテンプレート化したりして個別対応すればいい訳。 実用上の障害は何一つないのに問題視するのは、それ自体問題だ。
- 721 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:14:02 ]
- >>719
テンプレートはコンパイル時に型が特定されるので、問題はないのでは? 動的なテンプレートを実装したりすると問題が起こると思うけどC++はそうではないし。
- 722 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:17:41 ]
- >>721
勿論テンプレートを実体化するときには確定するな が、テンプレートは静的ダックタイピングの手段だから、 関数テンプレートを記述する際には型に関する仮定はおけんだろ? で、&&はどうすりゃいいんだろうな &&が腐ってるんなら、仕方なくVBみたいにifのネストを使うか?
- 723 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:20:36 ]
- C++最大の問題はプリプロセッサと旧態依然のコンパイル・リンクだろうな、あれの存在のお陰で
自動テストは作れない作ってもショボイ、インテリセンスも作れない作ってもバカの極み 自動リファクタリングに至ってはもはや絶望的、しかもコンパイルもリンクも超低速という点。
- 724 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:35:14 ]
- >>722
それが問題になるような事態に直面した事はないが、仮に直面してどうしても困るなら type_traits でも使えばよいのではと俺なんかは思ってしまいます。
- 725 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:41:57 ]
- >>724
議論ずれてきてるな こんな風にすればカバーできるよ!ってのどんどん突き進めたのが TMPなりboostなりだろ いやそれはあんたはそれでいいのかもしれねーけどよ 大したことやってるわけでもねーのに、あの糞ったれなバッドノウハウ集 全部押し付けんのか?プログラマに &&の問題なんて、禿の設計誤りさえなければそもそもそんなことを 考える必要すらないんだぜ
- 726 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:43:26 ]
- >>725
それ以前に困った事態ってのはどんな事態なんだよ、俺はそっちの方が気になる。
- 727 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:46:53 ]
- >>726
俺は困ってねえよ ユーザ定義&&なんてつかわねえからな 自分では が、テンプレート関数の中の&&は、一種の時限爆弾のようなもんだろ 誰かがユーザ定義&&を用いたら、それはコンパイルエラーにはならず 不可解な実行時の問題を引き起こす、かもしれない そして、それはすぐには気づかれない、かもしれないわけだ
- 728 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:50:27 ]
- それが心配でたまらないなら、ある種病気だよ
- 729 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:53:03 ]
- 実際、「C++の仕様で爆弾発生率が高い」ってのがソースなさすぎだからなw
- 730 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:54:32 ]
- 流石にそれはないよw
ただ、俺はそういう問題を知るためにまたしても*無駄な*コストを払わされたがな みんな麻痺してんじゃねえのか? C++の要求するあまりの学習コストの高さとバッドノウハウの多さに 確かにこんなのは氷山の一角ですらねえよ もともとが糞の山過ぎてな
- 731 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:57:11 ]
- 危険だと分かっているものであれば自然、用心深く取り扱われるので、思ったほど事故は起こらないもの。
面倒臭いだけだから何とかしろとは思うが、それらの問題点に突っ込み入れても問題は出てこないだろうね。 C++逝ってよし派ではあるんですが、重箱の隅をつつくような問題点指摘には賛成できない。
- 732 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:57:54 ]
- お金もらえるならなんでも書くよ
- 733 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 19:08:41 ]
- >>727
まあ、もしそういうことが起こったら、&&を定義したユーザの方が悪いだろということにされるな。 やっぱりなんでこんなの定義できるようにしたんだって話ではあるが。
- 734 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 19:15:29 ]
- ヘッダファイルに
static int int_data; #define x int_data などと比べれば&&など些細な問題さ
- 735 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:21:24 ]
- &&と||は避けようと思えば避けられた問題だもん
演算子はとにかく全部オーバーロードできるというわかりやすい規則を優先して その中には危険な演算子もありますよという話ならまだわかる でもそうじゃないじゃん 例えば&&と同じく副作用完了点を持つ?:はオーバーロードできない ::は出来ないし.も.*も出来ない、sizeofもtypeidもthrowも出来ない どれも問題あるからわざと出来ないようにしてるんだ どうしてこのリストの中に&&と||を加えることが出来なかったんだ? つーか?:を出来なくした時に気付けよ禿
- 736 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:42:31 ]
- えんざんしちげーだろ
- 737 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:44:22 ]
- そんなに気になるなら、&&セーフとか&&FREEのシールでも貼っとけ。
- 738 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 20:51:51 ]
- >>729
>実際、「C++の仕様で爆弾発生率が高い」ってのがソースなさすぎだからなw EffectiveC++等々の存在は十分爆弾発生率の高さを証明してると思うが・・
- 739 名前:デフォルトの名無しさん [2008/10/07(火) 21:00:38 ]
- EffectiveJavaもあって、初級者用じゃないけどJavaプログラマの中ではかなりの必読の部類に入るよ。
- 740 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:16:14 ]
- 組み込み系の経験ないんですが、C++使用の場合って
コーディング規約とかで縛ったりするものなんでしょうか?
- 741 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:18:14 ]
- もう一つ問題がある演算子があって、それはカンマ演算子
&&や||などと同じく、やはり副作用完了点として働く演算子の一つだ 普通は逐次実行されるので、左辺も右辺もどのみち評価されるから気にすることは少ないが 左辺が例外投げるような場合はやはり同じような問題が起こる さて、なぜoperator,は定義できてしまうのか?偉大なるBjarne大先生の答えはこうだ >operator,をオーバーロードできるようにしたのは、そうしてはいけない理由がなかったからだ。 (C++信者の聖典、D&Eより引用) これはひどいwwwwwwwww
- 742 名前:デフォルトの名無しさん [2008/10/07(火) 21:19:58 ]
- ある分野では operator , が実用上離せない
- 743 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:25:34 ]
- >>739
それ関係なくね?
- 744 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:31:32 ]
- >>741
なんつうかおじいちゃんはもっといたわって隠居させるべきだと 思ってしまうな
- 745 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:05:12 ]
- いけなかったというより、::や.のような制約がなかったからと言うべきのような……。
- 746 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 23:54:42 ]
- >>727
核戦争の心配してるほうがお似合い そっちのほうが被害は甚大だし現実にあり得る
- 747 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:11:43 ]
- 結局、使いこなせない人が「この要素が悪いんだボクが悪いんじゃないやい」
って言い訳しつつ、使いこなせる人をデタラメに煽って射精するスレってことでおk?
- 748 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:21:39 ]
- operator&&なんて使いこなしちゃいけない機能です
- 749 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:25:31 ]
- 問題点を指摘されて、それがありえる・ありえないって話にすり替えるのは違うんじゃないか
問題はあるけど回避可能だからC++を使おうって判断はそれぞれの職場でやればいい だけどココで問題を指摘されてるのに、自分にとってありえないから問題じゃないってのはお話にならないよ
- 750 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:33:41 ]
- >>747
また同じ煽りパターンか ぼくちんのC++に文句いうやつらは全員C++理解できないに違いない! C++も禿もぼくちんも天才!欠点なんかあるわけない! これで満足?
- 751 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:36:09 ]
- 何でもルールのせいにするのはゆとりだろう。
- 752 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:40:30 ]
- C++ しか知らなければ、C++ を過大評価したくもなるんじゃないかな。
2ch で主張してる分には見掛け上はノーリスクだし。
- 753 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 00:54:36 ]
- 747みたいに突然流れ無視して
「アンチはC++使いこなせないんだ!」って暴れ出す厨が定期的に出てくるよな 正直、どっちサイドからみても邪魔な基地外なんだがw
- 754 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:02:39 ]
- テンプレートメタプログラミング禁止とか多重継承禁止とか
実際に実行出来てる例はあるのかな。ベターCとして使う事を 考えるなら当たり前に出来て欲しいんだけど、どうも揉めそうだ。 他にも例外禁止とか名前空間禁止とか演算子のオーバーロード 禁止とか、Boost禁止とか、RTTI禁止とか。
- 755 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:15:19 ]
- >>750
君って低学歴でしょ?
- 756 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:31:45 ]
- >>754
禁止する理由を納得のいくように説明すれば揉めないんじゃない。
- 757 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:49:11 ]
- >>749
&&なんてC++使っているほうからしたら、誰も使わないだろjkって話なんだが、 外から見たら、ようするにバッドノウハウなんだよな。 そこに温度差というか埋まらない溝を感じた。
- 758 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:55:05 ]
- >>754
うちは揉めないけど、やっぱりみんな言語仕様通しの関連が分かってないね まあ新人はいまどきCなんて嫌だろうし、 ちゃんと理解して使うならC++でもいいよーって許可するんだけどね ミスらなかった子はひとりもいない、ベテランでもミスる もちろん仕事だからフォローはするよ
- 759 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 01:55:58 ]
- 誰も使わないし誰も使っちゃいけない機能が何であるんだよという素朴な疑問があるだけです
まあ設計者が大した考えもなしに使えるようにしちゃってるだけだけど
- 760 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:09:42 ]
- >>741
カンマの左辺で例外が起きたときの問題ってどんなの?
- 761 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:14:53 ]
- >>760
ただの関数呼び出しでは評価順序は決まっていないから、 a, bでoperator ,関数が呼び出されるときには、 b, aの順で評価されても構わないということになるはず。
- 762 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:22:18 ]
- >>749
なら誰にとってありえるの? 使いこなせないくせに演算子オーバーロード機能使って、しかも&&演算子を… っていう人間を仮定してみるとあちこち矛盾が生じるのだけれど 使いこなせるのに…もまた然り
- 763 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:59:50 ]
- >>762
え?釣りなの?本当に理解できてないの?
- 764 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 03:12:41 ]
- いいかい
問題がある・ないってのは客観なんだ 問題がありうる・ありえないってのは主観なんだ 客観に対して主観で反論したら議論にならないだろう? これはC++とか関係ない当たり前のことだよ
- 765 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 03:21:30 ]
- >>762
釣りじゃないなら一晩おいて、もう一度よく読み返してみな? 大丈夫、C++の問題点よりずっとずっと簡単な話だよ
- 766 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 03:56:33 ]
- Javaだと回避不能なウンコ仕様が多くて困るけど
(例えばしょうもないことで例外が飛んでくるとかthrowsとか) C++のウンコは知ってれば回避可能なウンコが多い気がするな まあ確かにC++にはウンコ満載な気はするけど 知ってしまえばどうということはないので 慣れればあまりフラストレーションが溜まらない、というのが俺の実感 && || , のオーバーロードの話だって More Effective C++ に「やるな」と書いてあって、 簡単に納得できるレベルの話だしねえ
- 767 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 04:07:11 ]
- いやいや、中にはそもそもできないようにしろよって主張も上の方にあっただろ。
俺もそう書いた1人だよ。
- 768 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 04:15:20 ]
- >>766
>>764に書かれてる事なんですぐ繰り返すの?ねえ?なんで?ばかなの?しぬの?
- 769 名前:デフォルトの名無しさん [2008/10/08(水) 04:35:23 ]
- CGIしか作れないようにしたらC++の意味ないよな。
ウケルw
- 770 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 08:59:01 ]
- 包丁は販売禁止ですね
わかります
- 771 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:47:29 ]
- いや、別に包丁は売ってもいいし、包丁で人が切れてもいいけど、
包丁を使ったと思ったら菜箸だった(ポルナレフAAry となるのがC++の凄いところ
- 772 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:55:57 ]
- >>770
両刃の包丁を買ってきたと思ったら、背側にも刃がある両刃でした
- 773 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 10:52:24 ]
- >>766
> Javaだと回避不能なウンコ仕様が多くて困るけど > (例えばしょうもないことで例外が飛んでくるとかthrowsとか) これはウケた 以下のコードはf()は何もthrowしない、と例外仕様で言っているが、 f() throw() { throw 1; } これをあんたのコンパイラがどう扱うか確認してみればいい C++では文字列も整数もクラスも ポインタも参照も、何でもthrowできる 例えばMFCとVC++のCOMサポート、C++標準ライブラリのようなものは 当然のように全く異なる流儀で例外を扱っている それらを全て捕まえたければ catch (...) を使うしかないが、 これでは何が飛んできたか分からないから、事実上何の役にも立たない 勿論スタックトレースの取得などできるわけもない C++はJavaの例外を馬鹿にできる立場には一切無いよ
- 774 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:25:14 ]
- >>769
operator &&や||をなくしただけで CGIしか作れなくなるのか すげえ言語だな
- 775 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 12:44:13 ]
- || のオーバーロードは昔からあるんだから現実にこの世の中で問題が起きたことを
確認してから批判してくれ。 どうせ || のオーバーロードができなければできないで批判されるだろうから。
|

|