C++ってなんであんなに肥大化しちゃったの? at TECH
C++ってなんであんなに肥大化しちゃったの? - 暇つぶし2ch724:デフォルトの名無しさん
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
|| のオーバーロードは昔からあるんだから現実にこの世の中で問題が起きたことを
確認してから批判してくれ。
どうせ || のオーバーロードができなければできないで批判されるだろうから。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch