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