【信者】C++の問題点【アンチ】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/10/10(金) 09:13:53C++ってなんであんなに肥大化しちゃったの?
http://pc11.2ch.net/test/read.cgi/tech/1219902495/
0002デフォルトの名無しさん
2008/10/10(金) 11:05:40言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
0003デフォルトの名無しさん
2008/10/10(金) 13:14:50本物の || && とおんなじ方法で動くようにすればいいだけだろ
0004デフォルトの名無しさん
2008/10/10(金) 18:04:14使う方が悪い
0005デフォルトの名無しさん
2008/10/10(金) 19:05:520006デフォルトの名無しさん
2008/10/10(金) 19:26:39function-try-blockの話でもしようか
0007デフォルトの名無しさん
2008/10/10(金) 20:39:02gcjって使ってる人います?
http://pc11.2ch.net/test/read.cgi/tech/1046627795/
0008デフォルトの名無しさん
2008/10/10(金) 20:44:16見ると、ATSって言語が異常に速いんだが
誰か使ってる人いる?
0009デフォルトの名無しさん
2008/10/11(土) 11:16:32Javaだって「将来無くすことになったので、このメソッドは使わないで新しいの使ってね」って言うじゃん。
で、実際に無くすか、互換性のために残しておくか。
どっちが正しいかは白黒なんてつかん
0010デフォルトの名無しさん
2008/10/11(土) 11:39:04アンチのなりすましですか?
0011デフォルトの名無しさん
2008/10/11(土) 19:26:070012デフォルトの名無しさん
2008/10/11(土) 20:36:580013デフォルトの名無しさん
2008/10/11(土) 23:59:550014デフォルトの名無しさん
2008/10/12(日) 04:15:140015デフォルトの名無しさん
2008/10/12(日) 04:58:04時々じゃなくてそれに基づいてプログラムを書いてるわけだが
お陰でオーバーロード時に問題が生じてしまったのは禿の責任ではない
0016デフォルトの名無しさん
2008/10/12(日) 20:00:280017デフォルトの名無しさん
2008/10/12(日) 21:43:39関数以外で提供すれば言いだけ
0018デフォルトの名無しさん
2008/10/12(日) 22:52:55+を掛け算、*を足し算にして、足し算優先な数式すらつくれるというのに。
0019デフォルトの名無しさん
2008/10/12(日) 23:19:210020デフォルトの名無しさん
2008/10/13(月) 00:02:320021デフォルトの名無しさん
2008/10/13(月) 00:06:49汗の世界では良くあること。
0022デフォルトの名無しさん
2008/10/13(月) 00:26:54全然違うぜ。
Add(Mul(1, 2), 3)
はあくまでmulを解釈した後addを解釈するし
Mul(Add(1,2), 3)
はAddを先に解釈する
1+2*3
は
1*2+3
としたところで、必ず*が先に解釈される。
プログラムの書き手が解釈順位を決めるのが関数
演算子はコンパイラがすでに解釈順位を決めている。
0023デフォルトの名無しさん
2008/10/13(月) 00:31:04にらそれと同じことをすればいい
0024デフォルトの名無しさん
2008/10/13(月) 00:31:53まあ、俺もうまく説明できてないが、
問題点を理解できてないのに噛み付かなくてもいいよ。
0025デフォルトの名無しさん
2008/10/13(月) 02:18:29で、そういうことをするプログラマーが問題ではないと
0026デフォルトの名無しさん
2008/10/13(月) 11:11:10低レベルの開発ならC並の何でもできる自由度が必要だけど、アプリよりになればなるほど勝手な振る舞いはしてほしくない。
今はハードをベタベタに触る言語とGUIやwebをらくらく使う言語と使い分ける時代じゃねーのかね。
C++は全部やろうとして、肥大化してるし、トラップも増えている感じ。
何でもできるけど、責任はプログラマ側ねという言語は必要だけどすべての分野で使うべきかどうかは疑問だね。
0027デフォルトの名無しさん
2008/10/13(月) 12:30:57そもそもC++をすべての分野で使うべきなんて誰も言ってないのに勝手に勘違いして
GCを全否定したり無駄な継承したりするのが義務だと思い込んでるだけ。
0028デフォルトの名無しさん
2008/10/13(月) 12:33:54分からない人が「たくさん」いる現場で使うにはC++はしんどい言語だってこと。
0029デフォルトの名無しさん
2008/10/13(月) 12:33:56GCって何?
0030デフォルトの名無しさん
2008/10/13(月) 12:35:070031デフォルトの名無しさん
2008/10/13(月) 12:36:31Grand Central
Gabage Collection
0032デフォルトの名無しさん
2008/10/13(月) 13:40:520033デフォルトの名無しさん
2008/10/13(月) 15:39:46あなたは○×言語の問題点を指摘されました
1)「おまえは○×言語もわからない馬鹿だから問題じゃない!」とレッテルを貼る
2)「その問題は俺は(普通は)回避できる(使わない)から問題じゃない!」と論点を摩り替える
3)「△□言語にも同じ問題があるから問題じゃない!」と論点を摩り替える
4)「〜〜という理由でそれは問題とは言えないのではないか?」と論理的に問題無いことを証明する
5)「確かにそこには問題があるね」と素直に認める
0034デフォルトの名無しさん
2008/10/13(月) 16:04:48属人性の排除とかいうやつか
0035デフォルトの名無しさん
2008/10/13(月) 16:30:24どんな言語・問題点だろうと普通は使わないからおkって答えればいい
0036デフォルトの名無しさん
2008/10/13(月) 16:36:290037デフォルトの名無しさん
2008/10/13(月) 17:02:140038デフォルトの名無しさん
2008/10/13(月) 17:02:36C++の演算子オーバーロードや例外は想像を超えた害悪があるから問題なんでしょ。
0039デフォルトの名無しさん
2008/10/13(月) 17:03:43&&のオーバーロードは罠なだけで役に立たん
0040デフォルトの名無しさん
2008/10/13(月) 17:11:256)「問題はあるけど愛されてるから無問題」と論点を摩り替える
もう何でもアリだなwww
0041デフォルトの名無しさん
2008/10/13(月) 17:16:17問題を孕んでるのが嫌らしいよな。結局、無い方がいい。
0042デフォルトの名無しさん
2008/10/13(月) 17:27:27演算子のオーバーロードは無いと困るだろう
0043デフォルトの名無しさん
2008/10/13(月) 17:28:40&& || ,
がまずいだけだ
さしあたりはな
0044デフォルトの名無しさん
2008/10/13(月) 17:31:090045デフォルトの名無しさん
2008/10/13(月) 17:31:25論点うんぬんは関係ない
ただ根拠がいい加減なだけ
0046デフォルトの名無しさん
2008/10/13(月) 17:36:350047デフォルトの名無しさん
2008/10/13(月) 17:39:00ユーザ定義の演算子を作らなくても実現出来ると思うんだけど
0048デフォルトの名無しさん
2008/10/13(月) 18:07:22それ言ったらどの演算子も多重定義できる必要は無い。
複素数やベクトルでa + bと書きたいのと同じようにスマートポインタではp->mと書きたい。
0049デフォルトの名無しさん
2008/10/13(月) 18:41:280050デフォルトの名無しさん
2008/10/13(月) 18:51:31と思ってたけどp.operator->()って普通に出来ちゃうのな
あまり意味がないような気がしてきた
0051デフォルトの名無しさん
2008/10/13(月) 19:25:060052デフォルトの名無しさん
2008/10/13(月) 20:33:580053デフォルトの名無しさん
2008/10/13(月) 20:43:27そう、隠すためではなく糖衣構文を提供するためのもの。
0054デフォルトの名無しさん
2008/10/14(火) 05:32:02前スレは10年近く前のネタを1000もかけて焼き直しただけだろ
これ以上一体何を続けるつもりだ?
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
0055デフォルトの名無しさん
2008/10/14(火) 09:11:420056デフォルトの名無しさん
2008/10/14(火) 09:21:25ヒント:読んだばかり
0057デフォルトの名無しさん
2008/10/14(火) 10:41:05え?ネタって書いてあるのが読めなかったの?
え?書いてある内容がどんなもんかすらわからなかったの?
え?もしかしてニホンゴワカラナイ?
0058デフォルトの名無しさん
2008/10/14(火) 11:14:57日本語でおk
0059デフォルトの名無しさん
2008/10/14(火) 18:12:290060デフォルトの名無しさん
2008/10/15(水) 10:02:39真正馬鹿でもゆとりでもいいから是非日本語で詳しく解説してくれ
ちなみに前スレって一言でまとめると
「斜め上発言でアンチからフルボッコされるドM信者スレ」
だよ?
0061デフォルトの名無しさん
2008/10/15(水) 18:03:390062デフォルトの名無しさん
2008/10/15(水) 18:25:37すごく興味あるから印象操作じゃないならポインタ示してね
0063デフォルトの名無しさん
2008/10/15(水) 22:58:32すごく興味あるから印象操作じゃないならポインタ示してね
0064デフォルトの名無しさん
2008/10/16(木) 10:17:02>まぁ信者は問題点に納得した時点で沈黙するからなぁ
>結局新規の馬鹿信者が斜め上発言してアンチがフルボッコにするループはいくらでも続く
前スレ988
>&&批判に反発してた連中は、終わった話を何度も蒸し返して
>無駄に傷口広げてる感じだったな
>しかも禿の仕様ミスであること自体は認めているから
>まともに・論理的には反論できずに
>そんなのは些細なことで問題にするほうがおかしいとか
>斜め上の話ばかりになる
0065デフォルトの名無しさん
2008/10/16(木) 10:32:360066デフォルトの名無しさん
2008/10/16(木) 18:38:55ということだな。
0067デフォルトの名無しさん
2008/10/16(木) 19:47:530068デフォルトの名無しさん
2008/10/16(木) 21:27:42なぜそれが結論なのかが知りたいのですけど?
一体何が問題なのですか?
0069デフォルトの名無しさん
2008/10/16(木) 22:10:53(ノ ゚Д゚)ノ ==== ┻━━┻
0070デフォルトの名無しさん
2008/10/16(木) 23:04:100071デフォルトの名無しさん
2008/10/16(木) 23:24:110072デフォルトの名無しさん
2008/10/16(木) 23:49:18組み込み型に対する&&や||は短絡といって、
左から順に評価していって、
結果が分かったらそれ以降の評価を行わない仕組みになってる。
たとえば、
bool f1(); bool f2();
if ( f1() && f2() )
という式があったとすると、f1が偽の場合、f2は評価されないことが保証される。
しかし、&&や||のオーバーロードの場合は関数呼び出しと解釈されるため、短絡がない。
それどころか、関数呼び出し順序は標準に規定されていないため、
どちらが先に評価されるかすら分からない。
my_bool b1(); my_bool b2();
if ( b1() && b2() )
この場合、b1とb2のどちらが先に評価されるか分からない(処理系依存)。
分かりにくいバグの元になる、コードの可搬性を損なう、などの理由から
&&や||のオーバーロードは推奨されない。
0073デフォルトの名無しさん
2008/10/17(金) 00:22:41つまり、&&オーバーロードは、+等のオーバーロードとは違う解釈で実行されるってことなの?
それなら、大きな問題だなぁ...
0074デフォルトの名無しさん
2008/10/17(金) 00:26:31それと同じ構造にすればいいだろ
0075デフォルトの名無しさん
2008/10/17(金) 00:29:42C#とかそれを目指している。
C++でもBoost.Lambdaは頑張った。
あと今から同じ構造になる仕組みをC++に持ち込んだとしても、
「互換性のため」現状の&&と||もそのまま残ること間違いない。
0076デフォルトの名無しさん
2008/10/17(金) 01:43:050077デフォルトの名無しさん
2008/10/17(金) 01:51:46Cにどっぷりはまるとそうなっちゃうのね
0078デフォルトの名無しさん
2008/10/17(金) 02:33:00遅延評価は、必要になるまで変数の値の計算を先延ばしにするHaskellのアレだ
0079デフォルトの名無しさん
2008/10/17(金) 02:37:48右オペランドを遅延評価することを短絡評価という
0080デフォルトの名無しさん
2008/10/17(金) 02:44:310081デフォルトの名無しさん
2008/10/17(金) 03:07:21遅延評価はもっと広い意味の言葉だから混同するとややこしい。
0082デフォルトの名無しさん
2008/10/17(金) 08:55:24何の指摘にもなってないよ
0083デフォルトの名無しさん
2008/10/17(金) 09:10:070084デフォルトの名無しさん
2008/10/17(金) 09:13:17日本語でok
0085デフォルトの名無しさん
2008/10/17(金) 10:40:56通常と同じ動作にしたらいいじゃんという主張は無意味だろ。
0086デフォルトの名無しさん
2008/10/17(金) 11:07:09おまえは+が加算である必要が無いからって乗算にするのか?
0087デフォルトの名無しさん
2008/10/17(金) 12:04:19そこで << ですよ
0088デフォルトの名無しさん
2008/10/17(金) 12:10:38良く分からんが
if ( b1 && b2 )
は
if ( b1.operator&&(b2) )
と等価じゃないの?
0089デフォルトの名無しさん
2008/10/17(金) 13:09:18夢を忘れた古いプログラマーたちよ
アンドじゃないアンドじゃない
素敵な世界
0090デフォルトの名無しさん
2008/10/17(金) 15:03:38operator&&() が my_bool のメンバならね。
でも
bool operator&&(const my_bool& a, const my_bool& b)
かも知れない。
更に、b1 が左辺値ではなく my_bool を戻す式だったとき、
やっぱり b2 とどっちが先に評価されるかは判らない。
0091デフォルトの名無しさん
2008/10/17(金) 16:06:02引数の評価順を重要視する意味がよくわからん
引数の時点で、真偽がわかったとしても関数から抜け出す手段は無いとおもうが?
b1 && b2 && b3
の式の場合
operator&&(operator&&(b1, b2), b3)
となって、operator&&(b1, b2)が偽の場合でも、一番外側のoperator&&()が実行されるから嫌だって事なら、ちょっとだけ理解できるかもしれないが
だからと言って、C++の欠陥だと大声で言うようなものでも無いと思うのですが
0092デフォルトの名無しさん
2008/10/17(金) 16:52:03短絡評価のメリットが解らない、ってこと?
0093デフォルトの名無しさん
2008/10/17(金) 17:17:31短絡評価のメリットを受けられるほど長い論理式を使うつもりなのですか?
それとも、短絡評価のメリットを受けられるほどのif文の山を築く気ですか?
0094デフォルトの名無しさん
2008/10/17(金) 17:41:19>>91
if 式 文
で式の内容如何によらず文が評価されていいと思ってるのか?
遅延評価無しではif文を関数化することは出来ない
だから禿も?:はoperator化していない
にもかかわらず、同様の機能を持っている&&や||をoperator化しているのが
マヌケだという話だろ
>>93
言語仕様の問題をプログラミングスタイルの方向に摩り替えたい人発見
0095デフォルトの名無しさん
2008/10/17(金) 18:00:57大きな問題ではないと考えるのも無理はない
0096デフォルトの名無しさん
2008/10/17(金) 18:05:33i++ || j++;
cout << i << "," << j;
||がオーバーロードされていなければ「2,1」が表示される
されていれば「2,2」が表示される
open(file) && abort();
&&がオーバーロードされていなければ、ファイルオープンに成功すれば処理が続行される
されていればファイルオープンに成功したのに異常終了する
0097デフォルトの名無しさん
2008/10/17(金) 18:32:16論理式は論理式だろ?
if文や三項演算子とは関係ないんじゃない?
>>96
むしろ、その使い方が、言語仕様の悪用だと思います
0098デフォルトの名無しさん
2008/10/17(金) 18:46:18いや、ショートサーキットの&&や||はifの変種みたいなもんだぞ
C/C++に引きこもっているうちは分からないかもしれないが、
他の言語もやってみれば分かるよ
0099デフォルトの名無しさん
2008/10/17(金) 18:52:24何のためにわざわざ&&や||が用意されてると思ってるんだ
0100デフォルトの名無しさん
2008/10/17(金) 18:54:39それもちょっと違うけどな
1 && 2は真だけど 1 & 2は0だし
0101デフォルトの名無しさん
2008/10/17(金) 18:55:39ごめんアホなこと言った
0102デフォルトの名無しさん
2008/10/17(金) 19:44:48論理式が返すのは、論理値だろ
論理式の処理過程を期待してプログラムするってのは、真値が特定の値である事を期待してプログラムするのと同じじゃん
0103デフォルトの名無しさん
2008/10/17(金) 19:50:03そうだよ、一部ではもはやただの論理式ではなく制御構造と見なされているということ。
C++ではあまり見ないけど、PerlとかでHogeHoge or dieとか。
0104デフォルトの名無しさん
2008/10/17(金) 19:50:39>論理式の処理過程を期待してプログラムする
「期待」じゃなくてC/C++は「仕様で」「明確に」「わざわざ」評価順を
定義しているわけだが
&& || に関してはな
何の意味も無くそんな仕様にしてると思ってんの?
ま、&&や||は論理演算、bool代数だよな?そこはその通りだ。
フローコントロールもセマンティクスも変えちまう
オーバーロードなんてもってのほかだよな?
0105デフォルトの名無しさん
2008/10/17(金) 19:59:18if(!banana)
{
// ↑気持ち悪いねこれ。
}
0106デフォルトの名無しさん
2008/10/17(金) 20:01:54if(false == banana)
好きなほうを選べ
0107デフォルトの名無しさん
2008/10/17(金) 20:02:26AndAlso OrElse という(キモい)演算子が追加されているのだが
その意味も分からないんだろうねえ
0108デフォルトの名無しさん
2008/10/17(金) 20:10:39言ってることがわからない
&&や||をオーバーロードできるように定義しているのも「仕様」なんじゃないの?
0109デフォルトの名無しさん
2008/10/17(金) 20:12:51だから、その仕様が不整合で良くないっつー話をしてるんだろ
言うまでも無く後から突っ込んだオーバーロードの仕様がマズい
0110デフォルトの名無しさん
2008/10/17(金) 20:19:030111デフォルトの名無しさん
2008/10/17(金) 20:27:57互換性が無くなってさらにカオスになるだけじゃねえか
0112デフォルトの名無しさん
2008/10/17(金) 20:31:27More Effective C++ぐらい嫁
0113デフォルトの名無しさん
2008/10/17(金) 20:36:52なんで違うの
0114デフォルトの名無しさん
2008/10/17(金) 20:48:12hoge.front()は*hoge.begin()相当。
強いて言えば、beginからfrontは取り出せるが逆は一般にできないんでfrontがやや余計かな。
0115デフォルトの名無しさん
2008/10/17(金) 20:52:080116デフォルトの名無しさん
2008/10/17(金) 21:20:33<<でkeyを流し込んだら valueが返ってくるクラスはあり?
0117デフォルトの名無しさん
2008/10/17(金) 21:29:440118デフォルトの名無しさん
2008/10/17(金) 21:46:28[]演算子で標準装備してない?
まあこれはkeyを持ってなかったらvalueにはデフォルトコンストラクタで生成
した値が代入されてしまうんだけど
0119デフォルトの名無しさん
2008/10/17(金) 21:51:590120デフォルトの名無しさん
2008/10/17(金) 21:54:05でおけ
0121デフォルトの名無しさん
2008/10/17(金) 21:58:280122デフォルトの名無しさん
2008/10/17(金) 22:39:11なんでもあり
0123デフォルトの名無しさん
2008/10/17(金) 23:04:00いやポインタに対して使うときは全部だろ
0124デフォルトの名無しさん
2008/10/18(土) 00:55:05Javaとかだと適当にクラス使ってもクラスパスから候補探してくれるのがメジャーなIDEの基本機能にある。
0125デフォルトの名無しさん
2008/10/18(土) 05:16:34ゆとりは黙ってろよ(笑)
そんな余計な機能はIDEには要らない
0126デフォルトの名無しさん
2008/10/18(土) 05:38:240127デフォルトの名無しさん
2008/10/18(土) 13:39:490128デフォルトの名無しさん
2008/10/18(土) 13:56:13C++のヘッダのincludeは単なるプリプロセッサ命令で、やってることは
原始的なコピペ
Javaは自己記述的なjarやclassからシンボルをインポートしてるわけだ
C++でそういうことをやるのは技術的に不可能ではないだろうが
向いているとは思えんな
現代的なIDEなどが出るよりはるか以前に作られた化石言語なのだから仕方が無い
0129デフォルトの名無しさん
2008/10/18(土) 14:06:23まるでIDEを妨害しようとしているかのような仕様
VSやBuilderやCDTはマジ頑張ってると思うのですよ
頭が下がる
0130デフォルトの名無しさん
2008/10/18(土) 21:29:58居たとしたらちょっと馬鹿すぎる
0131デフォルトの名無しさん
2008/10/18(土) 21:38:060132デフォルトの名無しさん
2008/10/18(土) 22:40:110133デフォルトの名無しさん
2008/10/18(土) 22:51:52C#がネイティブ初めから吐いてくれたらそっちに移行したいんだが
仕方ないからC++を使ってる
つーかC#プログラマ恵まれ過ぎだろ・・・
0134デフォルトの名無しさん
2008/10/18(土) 22:53:300135デフォルトの名無しさん
2008/10/18(土) 22:59:070136デフォルトの名無しさん
2008/10/18(土) 23:00:160137デフォルトの名無しさん
2008/10/19(日) 01:23:10↑頭悪いねこれ。
0138デフォルトの名無しさん
2008/10/19(日) 14:06:06ただ分かってない上司やクライアントがいるからC++の仕事もあるってだけだ。
本当はCで十分だったり、C#やJavaの方が効率良かったりするんだが。
0139デフォルトの名無しさん
2008/10/19(日) 14:12:04OS依存部分や、処理が思い部分を
C言語で書くスタイルがベストだな。
既にOracleがそうだし、CADもそういうのがある。
0140デフォルトの名無しさん
2008/10/19(日) 14:23:15だが普通はすぐに暗黒面に気付いて使うのを辞めるor仕事で仕方なく使うだけだ
0141デフォルトの名無しさん
2008/10/19(日) 14:41:12良い代替言語があれば良いんだけどね
0142デフォルトの名無しさん
2008/10/19(日) 14:53:48創始者が「仕様変えるぞー」を未だに自粛しないからこまったものだ。
0143デフォルトの名無しさん
2008/10/19(日) 16:11:15それに気付いた時にはバッドノウハウばかりで他言語に応用が効かないのも悔しいところだ
0144デフォルトの名無しさん
2008/10/19(日) 16:19:28D言語(笑)
0145デフォルトの名無しさん
2008/10/19(日) 16:37:25しかしチームでやる仕事ではゴメンだね
0146デフォルトの名無しさん
2008/10/22(水) 11:30:38周辺環境もある意味では言語の問題点に含まれると思う
特にC++の場合、ひとによってスキルの差がありすぎ
せっかくのリソースが活かせないことが多い
まあ割の良い仕事だから我慢するけど、これならCの方が開発効率良いよorz
0147デフォルトの名無しさん
2008/10/22(水) 17:05:15だったらクラスも何も使わないでC同然に書けばいいじゃないと思う。
0148デフォルトの名無しさん
2008/10/22(水) 17:14:26クラスがあるだけで private とクラスの名前空間があるから
かなり精神的に楽になる。依然マクロの脅威はあるけど。
0149デフォルトの名無しさん
2008/10/22(水) 18:05:19それならCでいい、というかCのがいいだろ
malloc()の戻り値などをいちいちキャストする必要は無いし
Cリンケージのためにいちいちextern "C"などと書く必要も無い
0150デフォルトの名無しさん
2008/10/22(水) 19:03:52147でないけど
キャストは new の仕様を促すからそのほうがいいんじゃない。new の方が楽で型安全だし。
extern "C" はCとリンクする部分だけでいいよ。普通の C のライブラリだって extern "C" 使ってるし。
extern "C" を使わないほうが型安全だし。
0151デフォルトの名無しさん
2008/10/22(水) 19:18:08newは例外まみれで鬱陶しい別の問題を引き起こすだろ
ただの関数形式のアロケータなら差し替えるのも簡単だ
C++をC++らしく使わないという仮定の話をしているようだから
それぐらいならCの方がいいと言ってるんだよ
クラスすら使わないC++で提供される付加価値よりは
グダグダなABIだの、さりげなく仕込まれる例外対策だののほうがずっと鬱陶しい
0152デフォルトの名無しさん
2008/10/22(水) 21:07:44それと同じくらいnewの差し替えも簡単だ。
void* operator new(std::size_t n)
{
return my_alloc(n); //NULLを返せば例外はthrowされない
}
void operator delete(void* p)
{
my_free(p);
}
//以下コピペするだけ
void* operator new[](std::size_t n)
{
return operator new(n);
}
void operator delete(void* p)
{
operator delete(p);
}
いや、これもずっと鬱陶しい「さりげなく仕込まれる例外対策」の内というならそれまでだけど。
0153デフォルトの名無しさん
2008/10/23(木) 00:24:04ただ、例外を使わないようにするとどうせNULLチェックをサボる奴が出てくるので
むしろ有害だと思うけどな
0154デフォルトの名無しさん
2008/10/23(木) 02:02:52スマートポインタかGCでもない限り、メモリリークの危険性がある。
STLで用意されてるauto_ptrはSTLコンテナに食わせられない糞仕様。
0155デフォルトの名無しさん
2008/10/23(木) 08:09:110156デフォルトの名無しさん
2008/10/23(木) 11:08:44まだ過去の話してんのか
std::tr1::smart_ptrは今では当然のように使う
0157デフォルトの名無しさん
2008/10/23(木) 11:46:55どっちにしろどうしても必要な所で最低限の使用にしないと重すぎて酷いことになるからなぁ
auto_ptrはそこそこ軽いから割と気軽に使える
まあ、本当は生ポインタが一番いいんだけどな
プログラマが楽をするためだけにスマポの莫大なオーバーヘッドを持ち込むのは感心できない
0158デフォルトの名無しさん
2008/10/23(木) 12:17:44多くの状況ではオーバーヘッドよりバグの方が深刻な問題になるんだから、楽はすべきだと思うけど。
0159デフォルトの名無しさん
2008/10/23(木) 13:12:15スマポなんかより便利だし
0160デフォルトの名無しさん
2008/10/23(木) 13:21:50boost::smart_ptr なんて存在しない。
どっちも shared_ptr。
あとオーバーヘッドなんて大したことないぞ。
ポインタに参照カウントの分の整数がついて回るだけ。
ポインタアクセス時は通常のポインタとほぼ同等
(レジスタ割り付けが多少阻害されるかもしれんが)。
コピーやデストラクト時に参照カウントの増減でこれも一瞬。
0161デフォルトの名無しさん
2008/10/23(木) 19:05:250162デフォルトの名無しさん
2008/10/23(木) 20:50:240163デフォルトの名無しさん
2008/10/23(木) 21:02:12極一部のUnix以外ではCが主流というオチ。
0164デフォルトの名無しさん
2008/10/23(木) 21:22:070165デフォルトの名無しさん
2008/10/23(木) 21:28:01ようやく次のC++0xで、コンテナに入れられるunique_ptrが入る。
参照カウントせずauto_ptrと全く同じオーバーヘッド。
まったくもって導入が遅すぎる。
0166デフォルトの名無しさん
2008/10/27(月) 19:09:41↓
C++0x
↓
C++(笑)
0167デフォルトの名無しさん
2008/10/29(水) 13:28:21template<class T>class vAlloc{
public:
T *m_obj;
vAlloc() : m_obj(NULL){};
vAlloc(int size) : m_obj(NULL){
Alloc(size);
};
~vAlloc(){
delete []m_obj;
};
Alloc(int size){
delete []m_obj;
try {
m_obj = new T[size];
} catch(std::bad_alloc) {
cerr << "メモリを増設してください" << endl;
m_obj = NULL;
exit(0);
}
};
};
こういうクラスを作っといて
vAlloc<char> str1(100);
strcpy(str.m_obj, "Hello");
こうやって利用すればいいんでないの?
0168デフォルトの名無しさん
2008/10/29(水) 13:34:53言いたい事は分かるけど、コピーコンストラクター位はつけた方がいいと思うんだ
0169デフォルトの名無しさん
2008/10/29(水) 13:46:130170デフォルトの名無しさん
2008/10/29(水) 13:55:15なんだそれ
vAlloc<char> str1(100);
なんてやるなら
char str1[100];
でいいだろ
そのクラスはそれ以上のものをそれは何も提供していないし
何の解決にもなっていない
0171デフォルトの名無しさん
2008/10/29(水) 14:02:26alloc()が例外投げること前提に作られてて
NULLチェックなんてしてるわけねーし
C++でデフォのnew捨てるってのは
事実上、標準を含む大半のライブラリを捨てるってこと
0172デフォルトの名無しさん
2008/10/29(水) 14:03:41何言ってるんだ?
君のコンパイラは、
char str1[strlen(hoge) + 1];
こんな使い方が出来るのか?
0173デフォルトの名無しさん
2008/10/29(水) 14:05:16ああ、いいたいことは分かった
alloca()っぽいことが出来るんだね
alloca()の代用にしかなってないけど
0174デフォルトの名無しさん
2008/10/29(水) 14:09:13まあ、そういうことが言いたいんじゃなくて、newが使われるシナリオの
ごくごく一部しかカバーできていないだろ、といいたいんだよ
0175デフォルトの名無しさん
2008/10/29(水) 14:41:56newが使われる際の問題って他にあるの?
0176デフォルトの名無しさん
2008/10/29(水) 16:21:08そんなことするならset_new_handlerとvector(もしくはboost::scoped_array)で十分だと思う。
0177デフォルトの名無しさん
2008/10/29(水) 16:50:22newが例外をスローしないようにするのなら
vectorなんて使えないんじゃないのか
new_handlerの中でabort()でも呼ぶのならいいだろうけど、もっと悪いような
0178デフォルトの名無しさん
2008/10/29(水) 17:37:38> new_handlerの中でabort()でも呼ぶのなら
そういう仮定。だって>>167ではexitだったからこそ。
0179デフォルトの名無しさん
2008/10/29(水) 18:06:25つうかabort()だのexit()だの呼んでる時点でダメだろ
0180デフォルトの名無しさん
2008/10/29(水) 19:09:350181デフォルトの名無しさん
2008/10/29(水) 19:13:25つまり、new handlerは、「それでいい」プログラムにしか使えないってことだよ
0182デフォルトの名無しさん
2008/10/29(水) 19:39:56ヒープに空きができてnewを成功させられるぜっていう話を聞いたことがある。
実用性皆無にしか思えない。
0183デフォルトの名無しさん
2008/10/30(木) 01:39:17Java の SoftReference がそんな感じ。
0184デフォルトの名無しさん
2008/10/30(木) 09:41:160185デフォルトの名無しさん
2008/10/30(木) 10:01:22C++が糞言語なのはみんな知ってるから一箇所でやってくれないかな
0186デフォルトの名無しさん
2008/10/30(木) 13:05:430187デフォルトの名無しさん
2008/11/02(日) 04:11:41C++ってそんな事も出来ないのかw
0188デフォルトの名無しさん
2008/11/02(日) 07:33:070189デフォルトの名無しさん
2008/11/02(日) 08:49:23Cにも出来ないけどな
0190デフォルトの名無しさん
2008/11/02(日) 11:53:20Cは低級言語だから別にいいんだよw
0191デフォルトの名無しさん
2008/11/02(日) 12:23:05'C++'の'C'部分に独自の拡張を加えちゃ駄目じゃん
0192デフォルトの名無しさん
2008/11/02(日) 12:37:38抽象化水準が低いから中級言語って言う奴はいたけど。
0193デフォルトの名無しさん
2008/11/02(日) 12:54:55C99なら嘆かわしいことに出来てしまう
まあ、あんなものC言語じゃないけどな
0194デフォルトの名無しさん
2008/11/03(月) 19:11:25ム半年目の頃に既に俺は思ってたね
関数の引数が参照渡しなのもヤバイ
0195デフォルトの名無しさん
2008/11/03(月) 21:30:242行目が値渡しでないからやばいと言っているのであればそれは違う。
0196デフォルトの名無しさん
2008/11/03(月) 22:35:070197デフォルトの名無しさん
2008/11/04(火) 00:23:34やばくて当たり前だっての
オブジェクト指向アセンブラに何処まで求めてるんだ?
0198デフォルトの名無しさん
2008/11/04(火) 00:39:19本当の意味で C with Class だったら更に良かったんだがな
残念言語
0199デフォルトの名無しさん
2008/11/04(火) 02:52:09お前その発言がどんだけ化石か自覚してるのか?
0200デフォルトの名無しさん
2008/11/04(火) 09:33:160201デフォルトの名無しさん
2008/11/05(水) 18:03:540202デフォルトの名無しさん
2008/11/05(水) 18:33:560203デフォルトの名無しさん
2008/11/06(木) 16:48:48演算子定義をconst参照で受けて、さらに注意しなければいけないことって何?
0204デフォルトの名無しさん
2008/11/06(木) 18:08:290205デフォルトの名無しさん
2008/11/06(木) 19:33:210206デフォルトの名無しさん
2008/11/06(木) 20:24:16全くもってそこらじゅう罠だらけだもん。
0207デフォルトの名無しさん
2008/11/06(木) 21:22:36・constを外さなくたってmutableメンバがあれば変更し放題
・deleteに対してconstは全く無力
何かを安全にするつもりでconstを使ってるなら、それは時間の無駄です
constは何も守ってくれません
0208デフォルトの名無しさん
2008/11/06(木) 21:45:340209デフォルトの名無しさん
2008/11/06(木) 21:46:39ほかに信じられるものなんて何もないから。
0210デフォルトの名無しさん
2008/11/06(木) 21:51:570211デフォルトの名無しさん
2008/11/06(木) 21:58:170212デフォルトの名無しさん
2008/11/06(木) 22:04:48removeしてからinsertしないと
0213デフォルトの名無しさん
2008/11/07(金) 02:46:000214デフォルトの名無しさん
2008/11/07(金) 03:43:360215デフォルトの名無しさん
2008/11/07(金) 09:35:550217デフォルトの名無しさん
2008/11/07(金) 16:23:46言語側で保障してりゃ良いだけの事を、本当に非効率的な言語(笑)だわ。
0218デフォルトの名無しさん
2008/11/07(金) 17:01:390219デフォルトの名無しさん
2008/11/07(金) 17:05:50ぼくはそんなつかいかたしないからC++はわるくないんだい!!
なんか本気で言ってそうでかわいそうになる
0220デフォルトの名無しさん
2008/11/07(金) 17:29:08きっと、大阪の轢き逃げみたいな事件を起こすような奴に違いない
0221デフォルトの名無しさん
2008/11/07(金) 17:53:25フルコースですか
次のメニューをお願いします
0222デフォルトの名無しさん
2008/11/07(金) 17:54:41引き続きどうぞ
0223デフォルトの名無しさん
2008/11/07(金) 18:12:170224デフォルトの名無しさん
2008/11/07(金) 20:36:53Motifやってた頃はお世話になりました。
0225デフォルトの名無しさん
2008/11/07(金) 20:59:11const char* strchr(const char* s, int c);
inline char* strchr(char* s, int c)
{
const char* t = s;
return const_cast<char*>(strchr(t, c));
}
Cのstrchrより型安全性が増しているという不思議。もっともCとの互換性は無くなったが。
0226デフォルトの名無しさん
2008/11/07(金) 23:36:090227デフォルトの名無しさん
2008/11/07(金) 23:42:360228デフォルトの名無しさん
2008/11/08(土) 18:01:46整理とか出来ない人が作ったの?
0229デフォルトの名無しさん
2008/11/08(土) 18:40:100230デフォルトの名無しさん
2008/11/08(土) 19:11:13名前空間はいろんな人たちが集まって何かを作るときの応急処置ぐらいに思っておいた方がいいよ。
boostは移行中or統合中とかがあって、一応名前空間で区別してるけど
using使い出すともうカオスになるよね。
0231デフォルトの名無しさん
2008/11/08(土) 22:32:08あなたならどう整理する?
0232デフォルトの名無しさん
2008/11/08(土) 23:17:560233デフォルトの名無しさん
2008/11/09(日) 02:10:380234デフォルトの名無しさん
2008/11/09(日) 16:31:19using namespaceとか使うから罠に嵌るんじゃないのか?
0235デフォルトの名無しさん
2008/11/09(日) 17:00:09C++にはKoenig Lookupという素敵な仕組みがあるから
0236デフォルトの名無しさん
2008/11/10(月) 08:50:37ヽ(`Д´)ノ
0237デフォルトの名無しさん
2008/11/10(月) 12:49:34負の数なんてなくても平気
0238デフォルトの名無しさん
2008/11/10(月) 14:23:58そういう奴はふつー、Cスタイルのキャスト (万能) 使うよなあ。
0239デフォルトの名無しさん
2008/11/10(月) 23:39:57そしてsigned_intクラスを作るんでしょ。
0240デフォルトの名無しさん
2008/11/11(火) 03:31:150241デフォルトの名無しさん
2008/11/11(火) 10:36:410242デフォルトの名無しさん
2008/11/24(月) 12:51:070243デフォルトの名無しさん
2008/11/24(月) 17:07:17http://en.wikipedia.org/wiki/C%2B%2B0x#Strongly_typed_enumerations
0244デフォルトの名無しさん
2008/11/24(月) 20:46:579割の案件でC#使ってるんで
0245デフォルトの名無しさん
2008/11/25(火) 03:33:560246デフォルトの名無しさん
2008/11/25(火) 06:30:45ほんと、さっさと消えろよゴミ言語が
0247デフォルトの名無しさん
2008/11/26(水) 08:50:02それがあればよさそうだ
改訂版が待ち遠しいぜ
0248デフォルトの名無しさん
2008/11/26(水) 13:42:58まともな処理系が使えるようになるのが 2012 ぐらいかな?そこから一般の仕事で
使えるぐらいに日本で普及するのが 2015 ぐらいじゃね?
0249デフォルトの名無しさん
2008/11/26(水) 17:38:36さすがにC++終わってそうだなw
今C++で張り切ってる中年組は全部リストラ済みだろうし
0250デフォルトの名無しさん
2008/11/26(水) 18:15:03その頃Dは7.0くらいになってるんだろうか
0251デフォルトの名無しさん
2008/11/26(水) 18:25:14どうやって、JavaやC#を実装するつもりだよ
0252デフォルトの名無しさん
2008/11/26(水) 18:37:49アホか
0253デフォルトの名無しさん
2008/11/26(水) 18:40:28聳え立つ糞の塊のC++とCを一緒にすんなカス
0254デフォルトの名無しさん
2008/11/26(水) 18:53:23こんな書き方発明した糞野郎は誰なんだろうな全く
0255デフォルトの名無しさん
2008/11/26(水) 20:03:570256デフォルトの名無しさん
2008/11/26(水) 21:06:52〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ こいつ最高にアホ
彡、 |∪| /
/ __ ヽノ /
(___) /
0257デフォルトの名無しさん
2008/11/27(木) 01:11:310258デフォルトの名無しさん
2008/11/28(金) 01:18:19CはUNIXカーネルの大半がCで書かれている限り残る。
0259デフォルトの名無しさん
2008/11/28(金) 19:48:020260デフォルトの名無しさん
2008/11/29(土) 23:15:08s/Mac/Apple/gな。今やiPhoneにも使用されている言語だ。
0261デフォルトの名無しさん
2008/11/30(日) 02:40:490262デフォルトの名無しさん
2008/11/30(日) 03:12:42流行ってるから言ってみたのか?
0263デフォルトの名無しさん
2008/11/30(日) 03:26:09は?
0264デフォルトの名無しさん
2008/11/30(日) 03:32:58>>262 が答えらしいよ。
0265デフォルトの名無しさん
2008/11/30(日) 03:37:440266デフォルトの名無しさん
2008/12/01(月) 00:30:120267デフォルトの名無しさん
2008/12/06(土) 03:41:300268デフォルトの名無しさん
2008/12/06(土) 15:05:290269デフォルトの名無しさん
2008/12/09(火) 12:54:550270デフォルトの名無しさん
2008/12/10(水) 17:27:310271デフォルトの名無しさん
2008/12/10(水) 17:52:31一体何十年使われ続けてこのザマだよ
0272デフォルトの名無しさん
2008/12/10(水) 17:55:23R u b y で は な い こ と
わかったかクズどもw
0273デフォルトの名無しさん
2008/12/10(水) 17:57:190274デフォルトの名無しさん
2008/12/11(木) 09:28:03お前のいるセカイには、そもそも何ひとつないんだろ?
0275デフォルトの名無しさん
2008/12/14(日) 09:19:57竹内まりやだろ
0276デフォルトの名無しさん
2008/12/18(木) 02:34:280277デフォルトの名無しさん
2008/12/18(木) 03:44:56何かあんのかね?
まずはJavaだの.NETだので基本やってくれって思う
0278デフォルトの名無しさん
2008/12/18(木) 20:36:22なんか仕掛けいれておかないとこのへんの管理ができない
他の言語もそうだけど
0279デフォルトの名無しさん
2008/12/18(木) 20:49:12いや、GCがいる言語はGCに聞けば教えてくれるのかもしれないけど
そういうのはそもそもメモリ使用量の制御自体出来ないじゃない
0280デフォルトの名無しさん
2008/12/18(木) 21:40:47コンシューマゲーム作ってるというのであれば話は別になるかもしれないが。
0281デフォルトの名無しさん
2008/12/19(金) 08:40:11どのサイズを知りたいかによるけど、言語レベルでは難しいだろうね
0282デフォルトの名無しさん
2008/12/19(金) 08:46:240283デフォルトの名無しさん
2008/12/19(金) 17:11:31メモリ管理如きにそんな潤沢な予算を回せる案件は無い
寝言は寝て言え
0284デフォルトの名無しさん
2008/12/19(金) 19:44:050285デフォルトの名無しさん
2008/12/19(金) 19:50:02ハード買わせた方が圧倒的に安い
0286デフォルトの名無しさん
2008/12/19(金) 19:55:200287デフォルトの名無しさん
2008/12/19(金) 22:08:22PCのアプリがプログラムの全てだと思うな
0288デフォルトの名無しさん
2008/12/19(金) 23:21:280289デフォルトの名無しさん
2008/12/19(金) 23:32:42組み込みのほうが格が上というのは常識だが?
0290デフォルトの名無しさん
2008/12/19(金) 23:51:11あんなのプログラムじゃねえよ
0291デフォルトの名無しさん
2008/12/20(土) 00:40:350292デフォルトの名無しさん
2008/12/20(土) 00:44:45気が狂うわ
0293デフォルトの名無しさん
2008/12/20(土) 02:11:09全然人間的思考が必要な物じゃないからな、組み込み
0294デフォルトの名無しさん
2008/12/20(土) 07:45:030295デフォルトの名無しさん
2008/12/20(土) 12:15:51こうなるというよい見本だったな
0296デフォルトの名無しさん
2008/12/20(土) 12:46:330297デフォルトの名無しさん
2008/12/20(土) 12:57:24どんだけ下手くそなコード書いてるんだろ
0298デフォルトの名無しさん
2008/12/20(土) 14:00:480299デフォルトの名無しさん
2008/12/22(月) 09:28:290300デフォルトの名無しさん
2008/12/22(月) 09:46:310301デフォルトの名無しさん
2008/12/25(木) 06:56:090302デフォルトの名無しさん
2009/07/26(日) 07:27:21{
virtual void func(void) {}
};
class B : public A
{
virtual void func(void) {}
};
class C : public B
{
virtual void func(void) { A::func(); }
};
こんな記述ができてしまうC++はクソ。
is a関係破壊してるしwww
Java見習え
0303デフォルトの名無しさん
2009/07/26(日) 08:45:06関係破壊してるのはお前だろjk
C++は自由度が高いがそれを利用するもしないも全部
プログラマの責任
つまりお前はヘボグラマ
0304デフォルトの名無しさん
2009/08/01(土) 23:10:08#include <stdlib.h>
#include <string.h>
class Test
{
public:
static void* operator new(size_t size,void* ptr){
delete (char*)ptr;
return NULL;
}
static void operator delete(void* ptr){
char** p = (char**)ptr;
*p = new char[256];
}
};
int main(void)
{
char* ptr;
delete (Test*)&ptr;
memcpy(ptr,"fuckin' C++",sizeof("fuckin' C++"));
printf("%s\n",ptr);
new(ptr) Test;
return 0;
}
0305デフォルトの名無しさん
2009/08/02(日) 02:19:02delete[] (char*)ptr;でしょ。
0306デフォルトの名無しさん
2009/08/02(日) 02:32:11まあ、この場合は余り影響ないだろうけど
0307デフォルトの名無しさん
2009/08/02(日) 04:55:290308デフォルトの名無しさん
2009/08/11(火) 19:06:22なぜなら自分で責任を取れるなら最も自由を与えてくれるのが
この言語において他は無いからだ
というか最早言語でさえない
メタ言語だ
0309デフォルトの名無しさん
2009/08/15(土) 16:57:100310デフォルトの名無しさん
2009/08/20(木) 08:05:030311デフォルトの名無しさん
2009/08/21(金) 11:38:300312デフォルトの名無しさん
2009/08/21(金) 11:56:580313デフォルトの名無しさん
2009/08/21(金) 16:19:53>アセンブリソースを吐ける
のはコンパイラであって、言語ではありません。
>だからメタ言語
意味不明。
0314デフォルトの名無しさん
2009/08/22(土) 02:37:44意味不明ということは無い。
言及する価値も無いが。
0315デフォルトの名無しさん
2009/09/02(水) 11:19:270316デフォルトの名無しさん
2009/09/04(金) 18:21:45コンパイラはコードをアセンブラに変換する。
メタ言語はコードを生成する。
0317デフォルトの名無しさん
2009/09/04(金) 19:46:11メモリが貧弱な組み込みデバイスでもC++のコードは思い通りに動いてくれてますけど。
0318デフォルトの名無しさん
2009/09/05(土) 02:57:160319デフォルトの名無しさん
2009/09/05(土) 12:00:36>肥大化って一体何のこといってるの?
ヘタクソが作るとメモリ使用量が爆発的に増加する現象。
C++ や Java に対する無知が生む悲劇。
0320デフォルトの名無しさん
2009/09/05(土) 20:34:15それってC++自体の「肥大化」とは全く関係なくない?
ヒープにあるオブジェクトをdeleteするとき、関連する全てのポインタを
自動的に全部無効にして欲しいとかは思ったことあるけど。
0321デフォルトの名無しさん
2009/09/06(日) 12:04:24スマポを使えば無効にしてくれるよ。
0322デフォルトの名無しさん
2009/09/06(日) 19:41:480323デフォルトの名無しさん
2009/09/06(日) 19:44:150324デフォルトの名無しさん
2009/09/07(月) 01:47:580325デフォルトの名無しさん
2009/09/07(月) 01:58:130326デフォルトの名無しさん
2009/09/07(月) 02:03:110327デフォルトの名無しさん
2009/09/07(月) 02:08:54JavaかC#使っておけ
0328デフォルトの名無しさん
2009/09/07(月) 02:33:08スマートポインタに意義があると困っちゃう人って、どんな人だろう?
0329デフォルトの名無しさん
2009/09/07(月) 12:05:36>C++自体の「肥大化」
kwsk
「仕様の肥大化」と >>319 以外に
何が「肥大化」すると?
0330デフォルトの名無しさん
2009/09/08(火) 01:17:17テンプレート周りのコンパイルエラーが全然、理解できない。
関数からローカル変数の参照返して、例外起こしちゃうし…
受け側でコピーコンストラクタ用意しておけば大丈夫って思ってたけど、
一時変数とごっちゃになっていたらしい。
しばらくリハビリが必要そうだ…
0331デフォルトの名無しさん
2009/09/08(火) 14:09:580332デフォルトの名無しさん
2009/09/08(火) 18:55:530333デフォルトの名無しさん
2009/09/11(金) 08:58:46よって責任を負えない素人や才無き者はC++に触れてはならない
0334デフォルトの名無しさん
2009/11/24(火) 06:17:01ネイティヴコンパイルで他にいい言語って何よ?
0335デフォルトの名無しさん
2009/11/24(火) 07:33:36Objective-C
Object Pascal
0336デフォルトの名無しさん
2009/11/24(火) 07:37:330337デフォルトの名無しさん
2009/11/27(金) 13:27:250338デフォルトの名無しさん
2009/11/27(金) 13:56:24頭の悪い巷があったもんだ。
0339デフォルトの名無しさん
2009/11/27(金) 14:35:51D言語ってまだ話題になってるのか?
0340デフォルトの名無しさん
2009/11/27(金) 15:01:060341デフォルトの名無しさん
2009/11/27(金) 15:51:58つ[ngen]
ところが、世の中 Windows だけじゃないんだが。
0342デフォルトの名無しさん
2009/11/27(金) 15:59:21Linuxの世界じゃ生きていけない
0343デフォルトの名無しさん
2009/11/27(金) 16:04:59つ[ngen]
おおっ!こんなのが出てるんですね。
C#に乗り換えようかなぁ。
でも、どっぷりとC++につかってるし、FORTRANに次ぐ
スピードといったらC++しかないからなぁ。
あ、>>339は一般論ではなく、俺的にはと言ったまでです。
0344デフォルトの名無しさん
2009/11/27(金) 18:51:060345デフォルトの名無しさん
2009/11/27(金) 22:57:580346デフォルトの名無しさん
2010/01/03(日) 23:05:360347デフォルトの名無しさん
2010/02/08(月) 18:31:420348デフォルトの名無しさん
2010/02/08(月) 18:48:250と3が偽とかのほうが気持ち悪くないか?
0349デフォルトの名無しさん
2010/02/09(火) 07:15:14自分もある程度はそう思うから、if (i)ではなくif (i == 0)って書く、iが数値型なら。
0350デフォルトの名無しさん
2010/02/09(火) 20:26:59CPUにとってのゼロの意味も偽だし
0351デフォルトの名無しさん
2010/02/10(水) 00:47:340352デフォルトの名無しさん
2010/02/10(水) 00:49:05C/C++のif()は気持ち悪いんだわ
0353デフォルトの名無しさん
2010/02/10(水) 01:57:400354デフォルトの名無しさん
2010/02/10(水) 10:55:08他人の作成したソースコードを読まなければよい
0355デフォルトの名無しさん
2010/02/10(水) 11:11:32真偽型を整数値に変換するときに真が1で偽が0
ポインタ型を真偽値に変換するときにヌル以外を真
とすると決まっているだけで
C++のboolもCの暗黙の真偽型も真と偽の二つの値しかとらない
暗黙の型変換が気持ち悪いのは同意
0356デフォルトの名無しさん
2010/02/13(土) 12:50:54リーズナブルだと思う
特に p をポインタとして if(p) という書き方は美しくて好き
0357デフォルトの名無しさん
2010/02/13(土) 13:11:56まぁ、美しいのは認めるが
0358デフォルトの名無しさん
2011/02/22(火) 01:30:29.740359デフォルトの名無しさん
2011/03/10(木) 21:57:17.96cだからじゃなくてマシン語がそうだからじゃないの?
0360デフォルトの名無しさん
2011/03/23(水) 14:19:34.90実装依存じゃなくて現に言語仕様で決まっている以上は「Cだから」だ
0361デフォルトの名無しさん
2011/04/30(土) 23:00:53.65例えば
ここに、「りんご」が0個あります
この「りんご」は「りんご」ですか?
って事
0362デフォルトの名無しさん
2011/05/01(日) 11:21:22.49ぼくも(´・ω・`)
0363デフォルトの名無しさん
2011/09/19(月) 21:36:37.12油断は禁物だ
0364デフォルトの名無しさん
2011/09/19(月) 22:33:00.57普通は最適化で全く同じ扱いになるもんだが。
0365デフォルトの名無しさん
2011/11/20(日) 11:24:50.790366デフォルトの名無しさん
2011/11/20(日) 12:06:59.900367デフォルトの名無しさん
2011/11/20(日) 12:10:00.680368デフォルトの名無しさん
2011/11/21(月) 12:29:57.892ch全体がね。
0369デフォルトの名無しさん
2011/11/24(木) 06:31:17.120370デフォルトの名無しさん
2011/12/07(水) 19:09:09.79自身が聞いた情報によると、もうじき中国はバブルがはじけて昔の貧乏な中国に戻るんだぜ
もう経済は破綻してて、取り戻すのは無理なんだそうだな
その世界ではやたら有名な政府関係者筋から聞いた確かな情報だな
まあお前ら頭の良い連中には、今さらなくらいのネタだ、
お前らからすればもう常識的なくらいの知識だろうぜ
0371プログラマ
2011/12/11(日) 00:27:36.40C++にはまり込むと廃人になりそうだ。
複雑さの背景には機械の不条理さを手なずけるための工夫があるんだな。
■ このスレッドは過去ログ倉庫に格納されています