Linus「C++プログラマはウンコ。寄ってくるな」 2

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
> Git のソースコードを最初に見たとき、ヘンだと思ったこと:
> 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性が
> どうとか言わないで、
> そんなのウソに決まってるから。

*あんた* のほうこそ大ウソつきだ。

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが
使ってるためにさらに輪をかけてゲロゲロになっていて、どうし
ようもないゴミが簡単に生産されるようになってる。正直いって、
C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だっ
たとしても、それ自体、C を使う強力な理由になりうる。

Linus Torvalds
http://tabesugi.net/memo/2009/1a.html#152154

前スレ
Linus「C++プログラマはウンコ。寄ってくるな」
http://pc11.2ch.net/test/read.cgi/tech/1232771545/
2デフォルトの名無しさん:2009/02/11(水) 15:46:07
これは支持する。
3デフォルトの名無しさん:2009/02/11(水) 15:50:37
パート2はマ板に立て直すかと思ってた。
4デフォルトの名無しさん:2009/02/11(水) 15:54:25
        .llllll
  : ,,,,,,,,,,,,,,,,,,llllll,,,,,,,,,,,,,,,,,,
  : llllll!!!!!!!!!!!!!!!!!!!!!!lllllll
  : llllll        llllll
  : l!!!!          ,illlll′    ,,.llllll,、   . .llllll,,,,
           ,,illllll゜    ゙ lllllli、   . llllll!
          ,,,illlll!゙      ,  ゙!!!!"   ,,llllll゙
        ,,,,iilllll!!゙  ウェーハハハ♪     , ,lllll!°
   -、_  llllllll!!゙゙゜∧_∧ シュー。:*゚   ,,illlll!゙`
     `‐-、_  <  `∀> f 。:*゚。 ・。*:illlll!゙°
         `-,ノ   ,つ[_];   llilllll!!゙゙`
         (〇  〈-`'"
         (_,ゝ  ) `‐-、_
           (__フ     `'‐-、,_..
                        `‐-、
5デフォルトの名無しさん:2009/02/11(水) 17:48:32
リーナスなんてウンコ臭くて誰も近寄らねぇよってんだよ
6デフォルトの名無しさん:2009/02/11(水) 19:19:48
2スレ目なんていらねえだろw
7デフォルトの名無しさん:2009/02/11(水) 23:43:03
>>3
そこまでの知能が >>1 にあれば
そもそも2スレ目なんか勃てないだろう。
8デフォルトの名無しさん:2009/02/12(木) 00:01:15
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
9デフォルトの名無しさん:2009/02/12(木) 00:10:08
2糞目
10デフォルトの名無しさん:2009/02/12(木) 22:33:35
      ∧∧  
〜′ ̄ ̄(,,゚Д゚) 
  UU ̄U U
11デフォルトの名無しさん:2009/02/13(金) 06:35:46
   _ ,、_,、   ,
  ゙フ ゙) 'д')__ノ,ミi 1サーン ハァハァ
  i彡'^ヽ.  i―'゛
      〉  `--、         ,,,,,,,,,
     / / ̄フ/         ( 'д)_ ウワーン、キモイヨー
   ,ノ/   レ'            ノ 1. r'
   レ'               ゙-'`ー'
12デフォルトの名無しさん:2009/02/13(金) 08:04:43
>>1の説得力に脱帽
13デフォルトの名無しさん:2009/02/14(土) 12:09:27
平均以下ってところがポイントだな
14デフォルトの名無しさん:2009/02/14(土) 14:14:56
class C++Programmer : CProgrammer
{
 Productivity OOP();  
}
15デフォルトの名無しさん:2009/02/14(土) 15:16:48
こいつマイクロカーネルの悪口も言ってただろ。
単なる老害
16デフォルトの名無しさん:2009/02/14(土) 15:56:54
マイクロカーネル(笑)
17名無しさん:2009/02/14(土) 18:31:42
A Real Programmer Can Write in Any Language (C, Java, Lisp, Ada)
http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

とか

Learn how to program.
http://www.catb.org/~esr/faqs/hacker-howto.html

とか
18デフォルトの名無しさん:2009/02/14(土) 19:09:18
立場的にC言語でも困らないレベルの連中とだけしか仕事してないからそうなるんだろうな。

底辺にいくと、自分の技量がある段階を超えたらC++を使った方がやりやすくなるよ。
ザコ用にいろいろ準備したり制限かけたりできるし。
19デフォルトの名無しさん:2009/02/14(土) 22:34:59
C++でないと出来ない準備とか制限って何?

インタフェースと実装を分ける、というような話なら
Cでもプロトタイプ宣言で出来るし、コーディングスタイルに
関することならCでもC++でも出来ないだろうし
20デフォルトの名無しさん:2009/02/15(日) 00:31:44
型の扱いが厳しければCのほうがマシってケースは多々ありそうだけど
クラスが無い、型に厳しい、なら関数型言語使うよ

組み込みの人達はそうはいかないんだろうけど
21デフォルトの名無しさん:2009/02/15(日) 00:36:13
組み込みといっても、Objective CとかJava使えるんだから関数型言語もありかもしれん
22デフォルトの名無しさん:2009/02/15(日) 00:38:41
>>18
という妄想を見てるんだろうね
23デフォルトの名無しさん:2009/02/15(日) 00:40:12
>>21
その組み込みって携帯電話のこと?
24デフォルトの名無しさん:2009/02/15(日) 00:41:55
templatemethodとかが適用できるような案件だったら、
「作るべきコード」が強制できる罠。

逆に無理してこうしたパターンに当てはめようとしちゃう所がダメなのかもね。
2524:2009/02/15(日) 00:46:27
でも「クラスが分からない」レベルで足切りしたいなら有効かもね。
Cだと上下に幅があり過ぎる上に、スキルを測る上での指標が少ない…
26デフォルトの名無しさん:2009/02/15(日) 01:03:49
クラスのメンバ関数をprivateにできるだけで十分制限になるだろ。
27デフォルトの名無しさん:2009/02/15(日) 01:08:54
外で自由自在に魔法コードかかれるよ
28デフォルトの名無しさん:2009/02/15(日) 01:20:12
特定クラスしか受付しない機能をライブラリ化して渡せばそんな程度じゃ困らんぜ。
29デフォルトの名無しさん:2009/02/15(日) 01:24:04
#define private public
30デフォルトの名無しさん:2009/02/15(日) 01:26:07
デフォルトでローカル変数がconst扱いになるだけで
C++はマシになると思う
31デフォルトの名無しさん:2009/02/15(日) 01:26:42
変更したかったら mutable か
32デフォルトの名無しさん:2009/02/15(日) 01:27:34
>>30
0xでそれをしないのは本当に馬鹿だと思った。
33デフォルトの名無しさん:2009/02/15(日) 01:34:19
互換性なくなるだろそんな変更w
34デフォルトの名無しさん:2009/02/15(日) 01:53:21
ローカル変数なんてほとんど害ないと思うんだが。
そんな長い関数でも書いてるの?
35デフォルトの名無しさん:2009/02/15(日) 01:55:01
良く使うものに限ってconst、constと名前が長くなるのは美しくない
36デフォルトの名無しさん:2009/02/15(日) 01:55:50
むしろデフォルトでclassをsealedにしろ
std::stringを継承するアホがいたので
37デフォルトの名無しさん:2009/02/15(日) 02:15:32
>>34
"どれも変更されるかもしれません"
"これとこれは変更されるかもしれません"
どっちのがわかりやすい?
38デフォルトの名無しさん:2009/02/15(日) 02:21:26
>>37
いやローカル変数なんて範囲狭く出来るだろ。
問題としては大きくない。
グローバル変数や大量のメンバ変数もつクラスのほうが問題が大きい。
39デフォルトの名無しさん:2009/02/15(日) 02:23:39
それは定数じゃね。
40デフォルトの名無しさん:2009/02/15(日) 06:13:24
>>15
いや、AST教授の方が老人なワケだが。
Linusは経験不足な青二才。

>>19
馬鹿避け。大規模案件だと、チーム全員が君のようなスキルが有るとは
限らない。むしろ一番底辺のザコに皆が合わせないといけなくなる。

>>21
使えねーよ。 >>23さんの言う通り、携帯電話のしかも画面作りだけだろ。
組込みに限らず、デバドラとか書くのにjavaとか使えねー。オシロやICEと
睨めっこしながら、タイミング計算したプログラム書くならアセンブラか、
C(=高級アセンブラ)に限る。
41デフォルトの名無しさん:2009/02/15(日) 10:01:13
>30-36
そもそもC++のダメな部分て、互換性に起因するモノが多い気もするな。
(特にCとの。)
42デフォルトの名無しさん:2009/02/15(日) 11:36:09
ドライバ作りならPCだってそうだべ。
アプリ作る話だよ。
43デフォルトの名無しさん:2009/02/15(日) 12:51:13
だから、それを「組み込み」と言うのかって話
44デフォルトの名無しさん:2009/02/15(日) 12:52:36
>>38
範囲の問題にしてるのはお前だけだからww
45デフォルトの名無しさん:2009/02/15(日) 12:55:42
スレを見る限りC++はウンコ
46デフォルトの名無しさん:2009/02/15(日) 13:11:38
おまえらがウンコなことはよーくわかった。
スレタイも読めないんだからな。
いいか、ここは「C++がウンコ」のスレじゃないんだよ。
わかったらスレタイの話題に戻せ。
47デフォルトの名無しさん:2009/02/15(日) 13:13:52
>>46
スレタイの内容について意見の統一ができたってだけだろ
48デフォルトの名無しさん:2009/02/15(日) 13:17:47
うんこでちゃいますぅぅぅぅ!
49デフォルトの名無しさん:2009/02/15(日) 13:21:12
自分がうんこプログラマであることは否定しない前提なんだけど
C++おもしろいよ。

あと、Cはプログラマはすべてわかっているっていう前提の言語だから
レベル低い人が使うとC++よりもひどいことに。
50デフォルトの名無しさん:2009/02/15(日) 13:21:38
>>46
スレタイだけではなく、>>1の内容でスレの内容が決まる。
>>1には「C++ はひどい言語だ。」と書いてある。

つまり、ここは「C++がウンコ」のスレでもある。
51デフォルトの名無しさん:2009/02/15(日) 14:07:34
C/C++どっちがひどいことになるって言ったらC++のほうがひどい。
52デフォルトの名無しさん:2009/02/15(日) 14:17:27
俺がC/C++使うとCの方がひどいコードになるなぁ。
C++やると引数が5個以上の関数ってあんま作らなくなった。大体1個か2個。
53デフォルトの名無しさん:2009/02/15(日) 15:16:12
それって大きなクラス作ってるだけだろ・・・
54デフォルトの名無しさん:2009/02/15(日) 15:35:46
stringとvector使うだけでもバグは減るんじゃねw
55デフォルトの名無しさん:2009/02/15(日) 15:46:45
>>53
正解!

>>54
アウトオブレンジ系のバグって凶悪なのに簡単にできちゃうから、vector使うだけでも大分違う。
あと、Vector使うとMallocしなくてよくなるからおかしなバグもおきにくい。(もちろん内部ではやってるの知ってるよ?)
56デフォルトの名無しさん:2009/02/15(日) 16:04:03
そのカッコ痛いからやめた方がいいよ
57デフォルトの名無しさん:2009/02/15(日) 16:06:34
でかいクラス平気で作ったり、確保領域の範囲外のアクセスを簡単にやっちゃうような
ヘボはC++かJAVAかVB(笑)あたりで遊んでてくだちい
58デフォルトの名無しさん:2009/02/15(日) 16:19:46
クラスはメンバ変数3つ(静的1,動的2)、メンバ関数2つ(なんとかラクタとgetter/setterは仕方ないから除く)
までが許容範囲
59デフォルトの名無しさん:2009/02/15(日) 17:00:23
さすがにそれじゃ今度はクラスが大量に出来るだけ。
60デフォルトの名無しさん:2009/02/15(日) 17:56:16
Cのがベターって奴はお馬鹿さんへの啓蒙活動に疲れ切って、
とりあえず理想と現実の落差が小さな所に逃げてるだけって希ガス。

まぁLinusみたいに相手を選べない立場に居る香具師だったら
それもやむ無しだろうけど。
61デフォルトの名無しさん:2009/02/15(日) 18:02:49
それは当たってる。
人数が多いだけの大型案件だと、情報系でないどころか
未経験の文系出身者が大量に流入して来るからな。
大学でもないのに、ワザワザ給料払ってまで教育してあげる
のには疲れ切った。

本来OOPって大規模開発のための技術だったハズ
なのに、現実の大規模案件ってオブジェクト指向
どころか構造化すら理解出来ない文系ウンコPGの
巣窟に成ってしまいがち。教育コストを考慮する
と、OOPって存在意義が無いわ。
62デフォルトの名無しさん:2009/02/15(日) 18:06:02
C++は、OOPやらなきゃ初心者に優しい言語だよw
63デフォルトの名無しさん:2009/02/15(日) 18:06:17
OOPが大規模案件向けってのは昔からあるデマだな。
64デフォルトの名無しさん:2009/02/15(日) 18:06:32
>>59
小さいクラスを大量に作ることは何も悪くないぞ
少なくとも巨大クラスを1個作るよりは圧倒的にまし
65デフォルトの名無しさん:2009/02/15(日) 18:54:37
「分割して統治せよ」っていうのは
スコットメイヤーズ先生もおっしゃっていた。
モノシリックなクラスを少数作るよりも
小さなクラスを大量に作るほうがいい。

さらにメンバ関数は極力減らして、非メンバ関数にするように、とも。
66デフォルトの名無しさん:2009/02/15(日) 18:58:35
小さなクラスがただ大量にあるのはメンバ変数が大量にあるのとあまり大差ない。
67デフォルトの名無しさん:2009/02/15(日) 19:01:51
っていうか、モノリシックであった。ひどいtypoをしてしまったと今は反省している。orz
68デフォルトの名無しさん:2009/02/15(日) 19:03:29
前スレのdatくれ
69デフォルトの名無しさん:2009/02/15(日) 19:04:00
デバッガで追うとすごいことになりそうw
70デフォルトの名無しさん:2009/02/15(日) 19:37:06
>>55
なにこれ?
malloc使ってバグると凶悪で、vector使ってバグるとバグが分からなくなる?
C++プログラマはウンコだからプログラマやめろ。
71デフォルトの名無しさん:2009/02/15(日) 19:42:06
>>70
凶悪なミスリードだな。
単純に2重開放がなくなったり、OutOfRangeを検出したり利点がある位の意味だけどなぁ。
72デフォルトの名無しさん:2009/02/15(日) 19:46:30
検出できないだろハゲ
73デフォルトの名無しさん:2009/02/15(日) 19:48:04
物理的には書き換えたかはわからないが、未然に防ぐことは可能だろう。
何のための例外とsizeメソッドなのかねぇ。
74デフォルトの名無しさん:2009/02/15(日) 19:56:57
結局検出できない。
で、1バイト単位での移動チェックね、遅いわけだ。
75デフォルトの名無しさん:2009/02/15(日) 20:00:13
物知りっくwww
76デフォルトの名無しさん:2009/02/15(日) 20:04:43
vectoの.at()を使えば、領域外参照で例外スローする。
77デフォルトの名無しさん:2009/02/15(日) 20:08:33
>>74
やっぱ遅いって言い出したか。
vectorの場合、オペレータオーバーロードは関数呼び出しのオーバーヘッドが多少あるが、
その中でsize()以上であれば例外を呼ぶし、基本的に場所を補足するのはo(1)だ。
不等式知らないんですか。

あ、MSec以下のチューニングしないといけない人なんですね。
78デフォルトの名無しさん:2009/02/15(日) 20:15:40
メガセカンド?
79デフォルトの名無しさん:2009/02/15(日) 20:20:21
想定内だなぁ。ミリセカンドでしょ。
80デフォルトの名無しさん:2009/02/15(日) 21:00:10
>>66
そんなことはない。
81デフォルトの名無しさん:2009/02/15(日) 21:13:15
大差ないと同じは違いますよ?
82デフォルトの名無しさん:2009/02/15(日) 21:19:44
アジャイルプラクティスではバランス感覚が重要だと言っていた。

つまり、(標準ライブラリのstringクラスのような)物知りっくな巨大クラスを設計してはいけないが
かといって有象無象のほとんど似たような機能がオーバーラップする小さなクラスをいくつもばら撒くのも間違いだ。
83デフォルトの名無しさん:2009/02/15(日) 21:19:51
>>81
そんなことは知ってる。だからどうした。
84デフォルトの名無しさん:2009/02/15(日) 21:33:01
現場を知らずに語っちゃうタイプ多すぎw
85デフォルトの名無しさん:2009/02/15(日) 21:38:15
>>84
お前のこと?
86デフォルトの名無しさん:2009/02/15(日) 22:41:13
C++使いの有名人をヲチしてみたいんだけど
誰かいませんかね
87デフォルトの名無しさん:2009/02/15(日) 22:50:27
>>86
スコット・メイヤーズ
ハーブ・サッター
アンドレイ・アレキサンドレスク
88デフォルトの名無しさん:2009/02/15(日) 22:56:25
>>86
FreeMLでML作ってるエー何とかっていう日本人がいるよ
89デフォルトの名無しさん:2009/02/15(日) 23:11:01
>>87,88
サンクス
90デフォルトの名無しさん:2009/02/15(日) 23:45:57
>>88
エピステーメー?
最近はC#に気持ちが行ってるようだが…
91デフォルトの名無しさん:2009/02/15(日) 23:52:56
Cryoliteとかcpp_akiraとかはどう?
92デフォルトの名無しさん:2009/02/18(水) 19:47:20
俺は、「プログラマは寄ってくるな」
って言いたいw

C++出来ますなんていってる人はイヤだ。
俺様ですらまともに扱えないもんを貴様が使えるわけなかろうて
93デフォルトの名無しさん:2009/02/18(水) 20:09:36
私なら、「少なくともC言語とPerlとCommon Lispを使えないプログラマは、寄ってくるな」
って言いたい。

理由は、
C言語を使えると言うことは、ハードに近い部分も扱えるプログラマであるから。
Perlを使えると言うことは、スクリプトでできることはスクリプトで作ったり、プロトタイプをすぐに提出できたりするプログラマであるから。
まぁ、別にPythonでもRubyでも構わないけど。
Common Lispが使えると言うことは、関数型言語(Lispは、純粋な関数型言語ではないけどね)でもプログラムを考えることができるプログラマであるから。
C++は、中途半端なマルチパラダイム言語なのが好かない。PerlもRubyもだけど。
94デフォルトの名無しさん:2009/02/18(水) 20:41:53
何故Common Lisp?
関数型というならSchemeか、いっそMLかHaskell。
95デフォルトの名無しさん:2009/02/18(水) 20:43:57
>>93
あと TeX も
96デフォルトの名無しさん:2009/02/18(水) 21:14:54
そしてC++。
97デフォルトの名無しさん:2009/02/18(水) 21:44:45
しかしVerilog。
98デフォルトの名無しさん:2009/02/18(水) 21:50:32
>>94
俺93じゃないけど、その中からどれか1つということでいいんじゃないかな。
自分はScheme使ったことあるが。
99デフォルトの名無しさん:2009/02/18(水) 21:58:49
>>97 VHDL は却下ですか?
100デフォルトの名無しさん:2009/02/18(水) 22:12:04
>>98
関数型言語がたくさんある中で、わざわざ
C++と同じ意味で「中途半端」なCommon Lispを選んでるのを見ると、
単に好き嫌いでいってるかんじゃないのかなあ。
101デフォルトの名無しさん:2009/02/18(水) 22:34:30
寄ってくるな!とまでは思わないけどC派生型の言語しか使ったこと無い
新人には、毛色の変った言語の習得を勧めるな。
思考が限定されてしまうのは、実に勿体無いことだ。
102デフォルトの名無しさん:2009/02/18(水) 22:34:33
達人プログラマーの続編に当たる(といわれる)アジャイルプラクティスでは
プロジェクトには最も適した技術(言語やフレームワークなど)を利用し、
どんな新しい技術にも投資し、古くて生産効率の落ちた技術は捨てろと書かれていた。
103デフォルトの名無しさん:2009/02/18(水) 22:39:12
俺なら C と Scheme だなー。

C は >>93 と同じで、低レベルなプログラムが書けるってことで。
Scheme はスクリプト、関数プログラミング、マクロを使ったメタ
プログラミングってとこかな。
104デフォルトの名無しさん:2009/02/18(水) 22:43:25
>>102
そして、投資し終わったころには、投資した技術は古くて生産効率の落ちた技術になっていると。
105デフォルトの名無しさん:2009/02/18(水) 23:05:38
>>100
自分が使える言語をリストアップして悦に浸るやつは多そうだけどな。
106デフォルトの名無しさん:2009/02/18(水) 23:07:48
だいたい、言語をあちこち並べる奴の何割が、*きちんと*Cを理解しているやら怪しいもんだ
感覚的に「Cできます」とほざく連中の90%かそれ以上は言うほどわかってない
107デフォルトの名無しさん:2009/02/18(水) 23:26:02
まぁ「Cを理解してない」と言うヤツの、かなりの割合が
自分がCを理解してないわけだが
108デフォルトの名無しさん:2009/02/18(水) 23:30:03
・わかってなくても口を挟める
・明らかな嘘を言ってもばれてないような気がする

これは論点がどうでもいい所にずれてる兆候。
109デフォルトの名無しさん:2009/02/18(水) 23:31:08
「Cができます」ってのはどのくらいのレベルがあれば言ってもOK?
110デフォルトの名無しさん:2009/02/18(水) 23:33:27
面接官の女性がほほを赤らめたら勝ち
111デフォルトの名無しさん:2009/02/18(水) 23:35:49
>>109
アセンブラと同じことができるようになった場合
ぶっちゃけ Uuix系 OS の kernel を何不自由なく読めるようになった場合

112デフォルトの名無しさん:2009/02/18(水) 23:36:04
高級アセンブラの異名をとるくらいだから
コンパイラが吐き出すニーモニックが透けて見えるレベルなら問題ないんじゃないの?
結局、アセンブラ使って直接石叩いたりすんのがめんどーだから
Cとライブラリ使うんだろうし

とか適当なことを
113デフォルトの名無しさん:2009/02/18(水) 23:37:21
>>109
グシケン、ヤマワキ程度
114デフォルトの名無しさん:2009/02/18(水) 23:38:57
業務系のプログラマにはハードを直接叩くような要求絶対にないから
C言語使えなくてもいいよね!
115デフォルトの名無しさん:2009/02/18(水) 23:40:49
いいよ。
116デフォルトの名無しさん:2009/02/18(水) 23:41:38
>>114 COBOL, PL/I, PASCAL, Java, C++, … … …
お好きなものをどうぞ
「FORTRAN, LISP には手を出さないのが吉」だと思われる
117デフォルトの名無しさん:2009/02/18(水) 23:51:55
>116
lispは業務系のPGでも、大量のデータ作ったりするのに使える。
emacs使いには特にお勧め。
そうじゃない人はPerlとかJavaScript、シェルスクリプトでも良いけどね。
118デフォルトの名無しさん:2009/02/18(水) 23:53:10
Emacsは使ってるけど、そういうときにはRubyちゃん!
119デフォルトの名無しさん:2009/02/18(水) 23:55:02
>>117
C も読み書きできない奴が Lisp をこなせるとは思えないんだが
120デフォルトの名無しさん:2009/02/19(木) 00:20:08
>117
Cが分からなくてもExcelのワークシート関数でそこそこ複雑な処理をこなせる奴が居るんだから、
ちょっとしたデータの作成や集計位はできると思うけど。

まぁemacsを使う方が難しいかもしれないが…
121デフォルトの名無しさん:2009/02/19(木) 00:32:40
>>119
CよりLISPの方が簡単なのだが。
122デフォルトの名無しさん:2009/02/19(木) 00:45:58
>>121 それはうそ
native 吐き出すコンパイラ持ってる奴は C よりコンパイラの振る舞い
知っていないとまともな速度が出ません
123デフォルトの名無しさん:2009/02/19(木) 00:47:18
構造体とクラスを明確に分けなかったこととは個人的に問題有りだ。
memcpyとか使って大丈夫なんだっけ?
構造体にデストラクタ仕込むとthisポインタが生成されるんだよね?
124デフォルトの名無しさん:2009/02/19(木) 00:54:36
>>122
それは簡単かどうかとはあまり関係ないと思う。
125デフォルトの名無しさん:2009/02/19(木) 00:56:02
>>123
クラスでも構造体でも条件を満たせばmemcpyできるし、仮想関数作ればvtableが作られる。
126デフォルトの名無しさん:2009/02/19(木) 01:00:25
>>123
何を怖がっているの?
127デフォルトの名無しさん:2009/02/19(木) 01:01:16
>>122
その前に助詞の使い方覚えようぜ
128デフォルトの名無しさん:2009/02/19(木) 01:10:58
C++って経験浅い奴ほど自信満々だよね
129デフォルトの名無しさん:2009/02/19(木) 01:11:59
例えば?
130デフォルトの名無しさん:2009/02/19(木) 01:20:05
131デフォルトの名無しさん:2009/02/19(木) 01:23:50
c++の親玉は音声認識の分野を追い出された人っぽいんだけど
単なる白い巨塔みたいな争いの延長臭い気がしないでもない

BSD vs Linux

の争いも似たようなもんだったよね.
linuxは綺麗じゃないけど,使う側にしてみたらドライバー揃ってるほうがいいから
結局linux使うっていう.

同じ意味での争いがpython vs lispでもみれたことあったな
library揃ってるpythonか綺麗にかけるlispかみたいな
132デフォルトの名無しさん:2009/02/19(木) 02:05:09
C++は何か苦手だ。PERLと似たような苦手意識がある。
何でもできるは何にもできないのと同じ的な印象が強い。

ぶっちゃけプログラム言語は言語自体はシンプルなのが一番だ。
メモリレイアウトに集中するだけで組めるC言語とか、
意味論に集中できるJavaやC#といった言語が素敵に思える。
133デフォルトの名無しさん:2009/02/19(木) 02:10:53
別に、C++が使いたいから使っているのではなく
そのプロジェクトではC++しか選択肢がないから使っているわけで。

結局、複数の言語をいやおうなく習得する羽目になる。
134デフォルトの名無しさん:2009/02/19(木) 02:18:02
名前空間をサポートしたC言語が夢の言語って意見もあるしね。
135デフォルトの名無しさん:2009/02/19(木) 03:52:59
いいなそれ
136デフォルトの名無しさん:2009/02/19(木) 04:17:35
Obj-C+名前空間がいいな
137デフォルトの名無しさん:2009/02/19(木) 14:01:59
(静的な)名前空間 -> 動的な名前空間 -> ADT -> オブジェクト指向 -> そしてC++へ。 
138デフォルトの名無しさん:2009/02/19(木) 21:17:43
ウンコから言わせてもらうとC言語とか云々以前にまずは母国語を(ry
139デフォルトの名無しさん:2009/02/19(木) 21:39:58
いまどき日本語しゃべれるプログラマの方が少ないだろ!
半数は中国人、1/4は韓国人、残りが国籍不明
140デフォルトの名無しさん:2009/02/19(木) 23:05:44
Effective C++等のルールに沿って禁忌事項を出来ないようにC++の文法を整理すると
C#の文法になります。
141デフォルトの名無しさん:2009/02/19(木) 23:13:19
名前空間だけC++の機能を使えばいいんじゃね。
142デフォルトの名無しさん:2009/02/20(金) 00:47:54
コンパイルエラーをサポートしたコンパイラがなければ意味がない
143デフォルトの名無しさん:2009/02/20(金) 11:20:43
図書館でLinuxのカーネル関係の本借りてきて
まだ最初のほうしか読んでないんだけど、
読んでてふと思ったことがあった。
もしかしてOSを仮に作るとしたら(実際は作りませんが・・・)、
C言語の標準ライブラリ関数だけでは機能不足だから
インラインアセンブラ必須って理解でいいんですか?
144デフォルトの名無しさん:2009/02/20(金) 11:28:59
お前はカーネルの本なんて読んでも無駄だから本はさっさと返せ
145デフォルトの名無しさん:2009/02/20(金) 12:37:22
いやです。この本は今日から毎晩ほおずりして愛で倒し俺のにおいをつけまくることにしました。
146デフォルトの名無しさん:2009/02/20(金) 13:16:32
いや、普通に読めよw
147デフォルトの名無しさん:2009/02/20(金) 22:35:26
>>143
インラインアセンブラというより生のアセンブラ必須
148デフォルトの名無しさん:2009/02/20(金) 23:21:41
>>143
一応言っておくけど、OSの機能が無ければC言語の標準ライブラリはできないよ。
OSが先で標準ライブラリは後。
で、OSを作るにはインラインアセンブラは必要だろうね。

>>147
「生」が何なのか不明だけど、インラインアセンブラで十分だよ。
149デフォルトの名無しさん:2009/02/20(金) 23:24:46
>>143
こんなところは, C は書けないんじゃね?

o initial boot 部分(多くの場合 BIOS とも呼ぶ)とか
o 割り込み/トラップエントリーとか
o c の start up とか
150デフォルトの名無しさん:2009/02/20(金) 23:30:22
>>148>>149 をインラインアセンブラでどう書くつもりなのか
151デフォルトの名無しさん:2009/02/20(金) 23:37:40
>>149
全部Cで書けるよ
というか特に理由が無いかぎりCで書く場合が多い
無理なところは最小限のインラインアセンブラを使うけど
152デフォルトの名無しさん:2009/02/20(金) 23:39:19
>>149
> o initial boot 部分(多くの場合 BIOS とも呼ぶ)とか

BIOSはOSの部分ではない。

> o 割り込み/トラップエントリーとか

インラインアセンブラでかけるだろ。

> o c の start up とか

「c の start up」って何のこと?
153デフォルトの名無しさん:2009/02/20(金) 23:47:56
どうしてもアセンブラが必要なところは、レジスタを直接書き換えなきゃ
いけない所だけ。割禁とかね。
それ以外は全部Cで書ける。効率的かどうかは別にして。
154デフォルトの名無しさん:2009/02/20(金) 23:49:54
>>152
> o 割り込み/トラップエントリーとか
書けないね
特定のCPUに特化したコンパイラじゃなきゃ

> 「c の start up」って何のこと?
スタックポインタとか最低限のレジスタ設定しなくてcのアプリって実行できるのか?
155デフォルトの名無しさん:2009/02/20(金) 23:50:18
レジスタを書き換える関数を作って呼べばいい。
それが駄目って言うなら、in/out や int なども C でできないことになる。
156デフォルトの名無しさん:2009/02/20(金) 23:53:48
>>154
> 特定のCPUに特化したコンパイラじゃなきゃ

別に特化しなくてもいいだろ。そのCPUのコードが吐ければ。

> スタックポインタとか最低限のレジスタ設定しなくてcのアプリって実行できるのか?

それをするのはOS。OSのその機能はCで書ける。
ところで、何で「cの」なんだ?何で書いてもアプリはアプリだろ?
157デフォルトの名無しさん:2009/02/20(金) 23:57:38
さすがにレジスタを直接イジるCの関数は無理だw
158デフォルトの名無しさん:2009/02/20(金) 23:59:35
世の中には組み込み関数という便利なものがあってだな・・・
__emit__ 最強
159デフォルトの名無しさん:2009/02/21(土) 00:00:10
>>158
それアセンブラだろ
160デフォルトの名無しさん:2009/02/21(土) 00:02:09
>>157
インラインで書ける
161デフォルトの名無しさん:2009/02/21(土) 00:04:36
スタックポインタを設定せずに C の関数が実行できるのか?
162デフォルトの名無しさん:2009/02/21(土) 00:04:52
c だけで自分が作ったプログラムを boot strtap してみろよ
163デフォルトの名無しさん:2009/02/21(土) 00:11:26
>>159
いいえ、マシン語を埋め込む[関数]です
164デフォルトの名無しさん:2009/02/21(土) 00:11:45
OS上のアプリケーションしか組んだことが無い人は、ワンチップマイコンの
評価キットで遊んでみることを勧める
買っても1k円しないし、トラ技のオマケだったりするし
どういう風にブートしてるとか良くわかるよ
165デフォルトの名無しさん:2009/02/21(土) 00:24:55
>>159が総叩きにあってないのが意外
166デフォルトの名無しさん:2009/02/21(土) 00:28:13
167デフォルトの名無しさん:2009/02/21(土) 00:29:27
UNIXはC言語で組んだらしいけど、どうやったんだろ?
168デフォルトの名無しさん:2009/02/21(土) 00:31:55
>>161
スタックポインタの設定って何だ?
引数の受け渡しのスタックポインタの操作はOSの機能ではなく、普通はアプリが自分でやるぞ?
169デフォルトの名無しさん:2009/02/21(土) 00:33:04
>>166
boot/*.s の時点で boot してないじゃん
170デフォルトの名無しさん:2009/02/21(土) 00:33:36
もしかして、OSが無いとコンパイラが動かせないから開発できないとか思ってる知的障害者がいるのかな。
171デフォルトの名無しさん:2009/02/21(土) 00:39:06
>>168
それをアプリの中に書いてないでしょ
誰かが一度はその部分を書かないといけないわけで
それはCでは書けない
172デフォルトの名無しさん:2009/02/21(土) 00:40:28
>>170
だから,
c で書かれた code のオブジェクトを startup させるために
最低限必要なレジスター設定をどうやった書くんだ?
って聞いてる

sp をどうやって設定するんだよ? どうやったって, アセンブラが必要だろ?
# それが c の拡張構文の中に収まっていたとしてもだ!!!
173デフォルトの名無しさん:2009/02/21(土) 00:41:53
>>169
あ、ほんとだ。でもまあ、インラインで書けることには変わりないし。
174デフォルトの名無しさん:2009/02/21(土) 00:42:27
175デフォルトの名無しさん:2009/02/21(土) 00:43:16
>>172
インラインで書ける。
176デフォルトの名無しさん:2009/02/21(土) 00:44:29
>>174
OSだとそれはあてはまらないのでは
177デフォルトの名無しさん:2009/02/21(土) 00:44:49
>>175
だからぁ, 書いてる内容はアセンブリじゃんよ
178デフォルトの名無しさん:2009/02/21(土) 00:45:36
>>175
君面白いね
179デフォルトの名無しさん:2009/02/21(土) 00:46:37
こんな奴らに文句言われるLinusに同情するわ
180デフォルトの名無しさん:2009/02/21(土) 00:50:47
>>172
Cの関数をアセンブラ・機械語に落とすと、
普通、関数の始まり・終わりにそれぞれスタックポインタ周りの初期化・後始末をするコードがつくけど、
コンパイラによっては、そういうコードを一切吐かないという指定が可能なの。
それ使って、あとは中からインラインアセンブリでスタックポインタの設定をすればいい。
181デフォルトの名無しさん:2009/02/21(土) 00:52:24
>>180 だからぁ, 書いてる内容はアセンブリじゃんよ
182デフォルトの名無しさん:2009/02/21(土) 00:52:29
>>177
インラインアセンブラに書くのも内容はアセンブリ言語だ。

>>147
>インラインアセンブラというより生のアセンブラ必須

と言ったから、インラインアセンブラでもできるって言ってるんだろ。
183デフォルトの名無しさん:2009/02/21(土) 00:53:45
>>181
だから、インラインに書けるだろ?
184デフォルトの名無しさん:2009/02/21(土) 00:57:47
俺は>>172ではないが、>>157の話をしてるんじゃないのか????
185デフォルトの名無しさん:2009/02/21(土) 01:00:20
>>183
たとえば, lisp の source code 内に、文字列として c のソースを埋め込んで
c コンパイラで文字列をコンパイル/実行したとしするじゃん

こんな感じ

(compile-c-code "
;; 延々 c のコードが続く
")
(exec <上でコンパイルしたコード>)

これって, lisp のコードとはいわんぞ
186デフォルトの名無しさん:2009/02/21(土) 01:02:53
>>174氏ね
187デフォルトの名無しさん:2009/02/21(土) 01:04:18
cでさえこうなんだから、c++を排除したのは正解かも
188デフォルトの名無しさん:2009/02/21(土) 01:05:24
>>187
火種になりそうな妙な事はもう言うなwwwwwwwww
189デフォルトの名無しさん:2009/02/21(土) 01:06:02
>>185
それをlispのコードと呼ばないかどうかはわからんが、
インラインアセンブラで書けるかどうかって話だろ?

>>172はインラインアセンブラで書ける。それだけ。
190デフォルトの名無しさん:2009/02/21(土) 01:09:38
あほな論争にようやく終止符が打たれた
あとは>>160が死ねば一件落着
191デフォルトの名無しさん:2009/02/21(土) 01:10:01
>>189 ある意味、処理系限定だけどな
192デフォルトの名無しさん:2009/02/21(土) 01:11:25
>>191
処理系限定じゃないアセンブラってあるの?
193デフォルトの名無しさん:2009/02/21(土) 01:12:40
>>187
GitがC++じゃないことに対する批判とLinusの反論とは別次元の話だよ。
boot strapをC++で書いたほうがいいと主張する奴は一人もいないだろう。
194デフォルトの名無しさん:2009/02/21(土) 01:16:08
インラインアセンブラをCと解釈するってアホだろ
195デフォルトの名無しさん:2009/02/21(土) 01:17:24
インラインアセンブラで書けるか、という議論を
インラインアセンブラはCか、と言う議論と解釈するってアホだろ
196デフォルトの名無しさん:2009/02/21(土) 01:19:35
>>195
>>160のことなら逆じゃね?
197デフォルトの名無しさん:2009/02/21(土) 01:20:51
逆ってどういう意味?
198デフォルトの名無しさん:2009/02/21(土) 01:32:24
くだらない意地に時間を費やすより、せっかくの機会だから、いろいろ試したり
調べたりしてみては?
ワンチップマイコンを弄ってみたり、Cから呼ぶアセンブラの関数をいろいろ
書いてみたりとか。
Cでここまで書けるのかという発見もあると思う。逆に無理なことも。
メインフレームと呼ばれる大型コンピュータのCPUにはスタックが無いもの
も多い。じゃぁCのプログラムって、どうやって動かしているんだろうとか。
199デフォルトの名無しさん:2009/02/21(土) 01:33:26
>>195はきちがい
200デフォルトの名無しさん:2009/02/21(土) 01:34:22
言語の枠と拡張すら理解できない奴がなにやっても無駄
201デフォルトの名無しさん:2009/02/21(土) 01:39:55
このスレのプログラマってC/C++で何のプログラム作ってるんだろう?
202デフォルトの名無しさん:2009/02/21(土) 01:42:50
要点だけ列挙すると

inlineのアセンブラは処理系によっては何でも書ける

意地でも関数プロローグと関数プロローグを伯処理系も
存在するようだ

inlineのアセンブラにしたってCPU依存だ

アセンブリのソース直書きするんと、どこがちゃうのよ

そもそも, アセンブリコードが大半のCのファイルが
Cのソースと言えるのか?

".c"とか付いてる限りCのコードって言ってええんちゃう

ってな話?

だとしたら、どれを見てもCの規格の範囲からハズレてるんだから
Cですべてが書けるってのは嘘じゃん
203デフォルトの名無しさん:2009/02/21(土) 01:44:40
ふと思ったんだけど、JavaVMみたいに「C実行環境」のようなものが無いと、Cのプログラムは動かせないとか思ってる知的障害者がいるのかな。
204デフォルトの名無しさん:2009/02/21(土) 01:44:52
>>180
へぇー。なるほど
で、そういう指定はgccでも出来たりする?
ざっと見た感じでは無いみたいだけど、見落とし?
205デフォルトの名無しさん:2009/02/21(土) 01:45:34
お前の妄想
206デフォルトの名無しさん:2009/02/21(土) 01:47:19
>>202
流れとしては、Cのコードか?とか、Cでかけるか?と言う話ではなくて、

インラインアセンブラで書けるか?と言う話だよ。
207デフォルトの名無しさん:2009/02/21(土) 01:53:16
>>203
それは誤解だ
JavaVMも仮想とはいえ、ちゃんとCPUでJavaでは書けない部分が存在する
その部分は隠蔽されているが JavaVMのアセンブラで書かれてある
208デフォルトの名無しさん:2009/02/21(土) 01:54:02
>>204
インラインだったら何でもできるって騒いでる奴じゃないけど
gcc は 3.x の頃から、関数の中身がすべてインラインアセンブラ表現だと
勝手にそうなるよ
# CPUタイプにもよるんだけど…

でも、書いてる内容はアセンブリ以外の何者でもないけどね

まだ、".s"とか".S"をサフィックスにしてアセンブリコードって分かった
方が、コードベースのメンテナンスはやりやすい
209デフォルトの名無しさん:2009/02/21(土) 01:58:44
>>204
__attribute__(naked)があるけど、一部の環境でしか対応していないみたい。
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
210デフォルトの名無しさん:2009/02/21(土) 02:01:03
>>207
日本語でいいですよ。
211デフォルトの名無しさん:2009/02/21(土) 02:04:54
>>208 >>209
ありがとう
でも関数からのリターンをどうするんだろうね
インラインアセンブラでjmpしちゃうのかな

それと、結局はインラインアセンブラだけではOSは書けないケースが多いということか
212デフォルトの名無しさん:2009/02/21(土) 02:05:50
>>157
>>160
どう考えても>>160がおかしいだろ。
213デフォルトの名無しさん:2009/02/21(土) 02:06:40
Javaバイトコードには、普通にJavaプログラムをコンパイルするだけなら
おそらく使われないであろうものもあると言いたいのだろうが、
それと203との繋がりがよく分からない。
214デフォルトの名無しさん:2009/02/21(土) 02:14:29
203が知的障害持ってるだけだろ
215デフォルトの名無しさん:2009/02/21(土) 02:17:55
お題。

ISO/IEC 14882:2003とXLib、Win32APIの範囲内でスクラッチからエディタを作る。
Win32、XLibともに標準C++ライブラリとかぶる機能があるが、この場合
標準C++を優先して使う。
これは、少しでも移植性を高めるための努力と考えてほしい。
また、拡張性の担保ともなりうる。

これは時間かかるけど、やりがいあるよ?
216デフォルトの名無しさん:2009/02/21(土) 02:22:49
>>215
Win32 は知らんが、Xlib って C バインディングじゃね?

つか、エディタ C とか C++ で作ろうと思わないんじゃね?

普通、拡張用の DSL 設計して最低限の機能をそっちに持たして
残りは DSL で実装しないか?
217デフォルトの名無しさん:2009/02/21(土) 02:30:40
>>216
また極端な意見だな
218デフォルトの名無しさん:2009/02/21(土) 02:31:09
上にスクリプトエンジンが乗ってると、
下はC++でなくてもCで十分だよな。
219デフォルトの名無しさん:2009/02/21(土) 02:33:24
また奇天烈な話かよ
220デフォルトの名無しさん:2009/02/21(土) 02:37:50
emacsに持っていくつもりかよ。
221デフォルトの名無しさん:2009/02/21(土) 02:47:06
xyzzy とか vim とか………
222デフォルトの名無しさん:2009/02/21(土) 04:03:58
メモリマップドIOならCから読み書きできる。

スタックまわりは無理だが、コンテキストスイッチやらなんやらの関数も当然あるから
記述はできるな。つーかCのソースはアセンブラに変換されるんだから出来て当然というべきか。
223デフォルトの名無しさん:2009/02/21(土) 09:16:27
>>211
何でそう言う結論になるんだか。。
224デフォルトの名無しさん:2009/02/21(土) 09:21:39
>>212
>さすがにレジスタを直接イジるCの関数(は「生のアセンブラ」(>>147参照)でなければ)は無理だw (>>157

>インラインで書ける (>>160)


どう見ても>>160が正しい。
225デフォルトの名無しさん:2009/02/21(土) 09:24:25
>>224
なんと言うエスパー
その超越した読解力はこのスレにはもったいない。消えろ。
226デフォルトの名無しさん:2009/02/21(土) 09:31:12
>>225
じゃあ、君の解釈はどうなんだ?
>>224のように補完していいから分かるように説明しろ。
227デフォルトの名無しさん:2009/02/21(土) 09:42:40
>>225が必死すぎてワロタww
まあ>>224もきちがい染みてるけどな
228デフォルトの名無しさん:2009/02/21(土) 09:47:29
>>226
お前レベルの補完は書いた人間以外無理だろJK
229デフォルトの名無しさん:2009/02/21(土) 09:52:07
>>228
だから、君はどう補完してどう解釈するのかを示せよ。
230デフォルトの名無しさん:2009/02/21(土) 09:56:02
>>229
>さすがにレジスタを直接イジるCの関数は無理だw (>>157

>インラインで書ける (>>160)

これ以降インラインはCと言えるのかというアホ議論に発展
231デフォルトの名無しさん:2009/02/21(土) 09:59:57
なるほど。
インラインアセンブラの話題で「インラインアセンブラ」を「インライン」と略したら
それを「インライン関数」と解釈したアホがいたってことか。
232デフォルトの名無しさん:2009/02/21(土) 10:02:19
>>230
まあ、そうだな。
233デフォルトの名無しさん:2009/02/21(土) 10:05:27
>>231
次から次へと真打が出てくるなw
その発想はなかった
ってかそんなレスがあったのかどうか
234デフォルトの名無しさん:2009/02/21(土) 10:09:35
結論

>>143
はい。インラインアセンブラ必須です。
「生のアセンブラ」は必要ありません。
235デフォルトの名無しさん:2009/02/21(土) 10:11:20
>>234
いや、Cで書ける
236デフォルトの名無しさん:2009/02/21(土) 10:12:37
>>235
Cで書けるかどうかではなく、インラインアセンブラが必要かどうかを聞かれているんだけど?
237デフォルトの名無しさん:2009/02/21(土) 10:14:03
238デフォルトの名無しさん:2009/02/21(土) 10:16:48
敗北した>>147がコピペ荒らしを開始したようだな。
239デフォルトの名無しさん:2009/02/21(土) 10:19:33
無限ループって怖いね><
240デフォルトの名無しさん:2009/02/21(土) 10:51:10
__emit__ 組み込み関数と強制インライン関数を組み合わせたら
関数だけで何でも出来るよ
241デフォルトの名無しさん:2009/02/21(土) 11:36:01
>>157がC(の関数で)レジスタがいじれないっていってるのに
Cの文法ではないインラインアセンブラで書けるって突っ込むからおかしいんだろ。
言ってること自体は間違ってないが>>157はCで書けないっていってるわけで
Cの文法でないインラインアセンブラでかけると言ってる突込みがおかしいと言われてるのに
自分のいってることは間違いではないの一点張り。
そりゃそうだけどそりゃ会話(レス)じゃない。
242デフォルトの名無しさん:2009/02/21(土) 11:43:11
インラインアセンブラを使えば、Cの関数でレジスタをいじれるよ。

>>157の論点は「インラインアセンブラがCの(標準化された)文法か」ではない。
単に「Cの関数でレジスタをいじれるか」だ。
243デフォルトの名無しさん:2009/02/21(土) 11:48:18
>>241
>>143からの流れでインラインアセンブラの話をしているのに、
「Cの文法でないインラインアセンブラでかけると言ってる突込みがおかしい」と言う方がおかしいだろ。
244デフォルトの名無しさん:2009/02/21(土) 11:48:56
つまり、>>147の言い分だと
WTLを使うと言う事は、アセンブラを使う事だって事か?

そ・ん・な・ば・か・な・!!!
245デフォルトの名無しさん:2009/02/21(土) 11:57:57
あほばっか
246デフォルトの名無しさん:2009/02/21(土) 12:00:26
>>243
>>143
>C言語の標準ライブラリ関数だけでは機能不足だから
>インラインアセンブラ必須って理解でいいんですか?
とC標準の限界に言及してるんだからおまえがおかしい
247デフォルトの名無しさん:2009/02/21(土) 12:03:16
>>242
お前独自の論点では会話は成立しない
248デフォルトの名無しさん:2009/02/21(土) 12:31:32
まあ、>>147がバカだったってことで。
249デフォルトの名無しさん:2009/02/21(土) 12:46:13
とりあえず、>>147が馬鹿だな
インラインアセンブラは必須だけど、生のアセンブラは要らない
250デフォルトの名無しさん:2009/02/21(土) 13:58:59
アセンブラ
=> OSを含んだあらゆるソフトウェアが記述可能
C
=> 拡張機能のインラインアセンブラを使えばOSが記述可能
=> C標準関数等だけではOSの記述は不可能。
C++
=> C同様に拡張機能を使えばOSが記述可能。標準機能のみでは無理。
=> 標準でC互換なのでC言語の機能がすべて使用可(extern "C"もあるよ)

結論:
拡張機能も含めればC++最強!!!!!!!!
拡張機能を含めない場合はアセンブラ最強!!!!!!
251デフォルトの名無しさん:2009/02/21(土) 14:16:32
asm ブロック自体は C の規格にあるわけだが
252デフォルトの名無しさん:2009/02/21(土) 14:21:16
C++がウンコっていう命題からずれすぎ
253デフォルトの名無しさん:2009/02/21(土) 14:36:37
つ [ISO C] [ANSI C]
254デフォルトの名無しさん:2009/02/21(土) 15:01:53
滅多に使うべきでないパターンを簡単に使えるのが問題。
あるパターンが必要になる確率とそのパターンを使いたいと思う確率が一致しない。
255デフォルトの名無しさん:2009/02/21(土) 15:10:46
>>251
ありませんが。
あるというなら規格のどの項だよ?
256デフォルトの名無しさん:2009/02/21(土) 15:41:23
すまん。asm が規格にあるのは C++ だったわ。
257デフォルトの名無しさん:2009/02/21(土) 15:42:14
asmはCじゃなくてC++の規格

しかもC++でも構文が決まってるだけで中身はimplementation-definedだから
asmの中にインラインアセンブラを書けるという保証は標準の範囲内にはない
258デフォルトの名無しさん:2009/02/21(土) 15:44:48
インラインアセンブラを書けるという保証は無いが、
インラインアセンブラを書けても規格の範囲内だな。
259デフォルトの名無しさん:2009/02/21(土) 17:02:52
アセンブラの話でC++がウンコな話をそらそうとする輩がうざい。
260デフォルトの名無しさん:2009/02/21(土) 17:26:59
Linusはオブジェクト指向言語をウンコだとは言っていない、C++がウンコだと言っているだけ。
そして実際にC++はウンコ。
261デフォルトの名無しさん:2009/02/21(土) 17:44:40
C++よりウンコじゃないオブジェクト指向言語ってあるの?
程度と方向性の違いはあってもクソばっかりじゃん
262デフォルトの名無しさん:2009/02/21(土) 17:47:50
C#は神
263デフォルトの名無しさん:2009/02/21(土) 17:49:53
まあ、ウンコウンコいってるやつにとっては
現実世界もきっとウンコに違いない。

ウンコな世界にいるのは精神衛生上よくない。
あなたの望む世界へ旅立つ事をお勧めします。
264デフォルトの名無しさん:2009/02/21(土) 17:51:43
きっとハエなんだよ
265デフォルトの名無しさん:2009/02/21(土) 18:51:19
俺もC++使うけど、なんだかんだ言ったってCが一番落ち着くw
266デフォルトの名無しさん:2009/02/21(土) 20:09:38
デストラクタが無いと落ち着けないわ・・・
267デフォルトの名無しさん:2009/02/21(土) 22:03:34
>>266
たかがそんなことで落ち着けないなんて・・・
素人そのものだねw
268デフォルトの名無しさん:2009/02/21(土) 22:57:41
Objective-Cは間違った進化をしてるとしか思えない
269デフォルトの名無しさん:2009/02/21(土) 23:01:53
例えば?
270デフォルトの名無しさん:2009/02/21(土) 23:03:29
Objective-Cはちょっと構文見ただけで吐き気がしてくる。
気持ちが悪い。
これはCを語っちゃいけない言語だと思う。
271デフォルトの名無しさん:2009/02/21(土) 23:08:33
C#とObjective-Cだとどっちだよ。
272デフォルトの名無しさん:2009/02/21(土) 23:12:00
c#の圧勝
273デフォルトの名無しさん:2009/02/21(土) 23:13:12
>>271
較べるなんておこがましい。

C#は大成功
Objective-Cは大失敗
274デフォルトの名無しさん:2009/02/21(土) 23:13:36
>>270
Cの完全上位互換ですが?
275デフォルトの名無しさん:2009/02/21(土) 23:19:06
>>273
単にWindowsとMacの差だと思う
iPhoneやその周辺次第によっちゃObjective-Cもこの先あなどれない
276デフォルトの名無しさん:2009/02/21(土) 23:21:34
構造化プログラミングのC言語をマクロ構文みたいなキーワードを追加して
無理矢理オプジェクト指向プログラミングを実現している
277デフォルトの名無しさん:2009/02/21(土) 23:22:16
漏れもObjective-Cはいただけない。
構文が泥縄的、あるいは取って付けたと形容するに相応しい。
Cとの互換性はヘッダを取り込み、objを吐ければ十分なんだから
Cの構文をそのまま内包する必要は無い。
278デフォルトの名無しさん:2009/02/21(土) 23:22:27
>>275
プラットフォームは関係ない。
ライブラリでも実行バイナリでも比較していない。

純粋に言語仕様の差だ。
279デフォルトの名無しさん:2009/02/21(土) 23:24:42
C/C++ カレーはご飯とルーに分けて食べるタイプ
Objective-C カレーはご飯とルーをぐちゃぐちゃに混ぜてから食べるタイプ
280デフォルトの名無しさん:2009/02/21(土) 23:25:06
C++もObjective-CもC#も
方向性が違うだけでウンコ度は一緒
281デフォルトの名無しさん:2009/02/21(土) 23:27:04
>>279
違うだろ
カレー(C)に福神漬け(オブジェクト指向)を乗せたのがObjective-C
カレーの具に福神漬けを入れて煮込んじゃったのがC++
282デフォルトの名無しさん:2009/02/21(土) 23:46:04
カレー→シーフードカレー的進化がC++、
カレー→エビフライカレー的進化がObjective-C。

後者は、乗っかってるエビフライのビジュアルに問題がある。
283デフォルトの名無しさん:2009/02/21(土) 23:55:43
ttp://sourceforge.jp/magazine/09/01/27/0039208

C++結構人気ないね・・・
284デフォルトの名無しさん:2009/02/22(日) 00:00:26
2CH憲章

・奇天烈な書き込みで合意を得られると喜ばしい。
285デフォルトの名無しさん:2009/02/22(日) 05:41:21
イメージとしてはこうかな
Objective-C  カレーソースとライスが分かれてる(上品な感じ)
C++       カレーうどん(大衆的な感じ)
286デフォルトの名無しさん:2009/02/22(日) 10:20:21
Objective-C: ご飯の上にカレーうどん用のカレーぶっかけちゃった感じ
C++ ご飯に普通のカレー入れたけど、ぐちゃぐちゃにかき混ぜちゃった
287デフォルトの名無しさん:2009/02/22(日) 10:47:12
大阪にはご飯の入ったカレーうどんがあるんだぞ
288デフォルトの名無しさん:2009/02/22(日) 11:38:54
>>283
スタンドアロンならjavaのがライブラリがそろっていて楽だし、
ライブラリつくるならどうせCリンケージで出さないといけないのでCのがよい
って感じでしょ。
289デフォルトの名無しさん:2009/02/22(日) 13:55:17
C++ ご飯とカレーの材料を置いてるだけの感じ(お前ら好きにしろ)
Objective-C: 必死になってるだけ
290デフォルトの名無しさん:2009/02/22(日) 14:22:22
C ご飯とカレー
C++ ご飯とカレーにいろんなスパイス並べて好き勝手スパイス入れてから客に出す
291デフォルトの名無しさん:2009/02/22(日) 14:35:04
Cは米や肉などの材料で薪集めてカマド作るところから始めていく
C++は上記に微妙に便利なアウトドアグッズが揃っている
292デフォルトの名無しさん:2009/02/22(日) 14:47:05
柄に刃が付いたナイフや底に穴の開いた鍋が揃ってるんですね、わかります
293デフォルトの名無しさん:2009/02/22(日) 17:17:21
柄と刃の区別もつかないバカは料理しちゃいけませんでちゅよー。
294デフォルトの名無しさん:2009/02/22(日) 17:22:53
実際そういうレベルの人がアウトドアしてるんだよね。
そいつらにバカはアウトドアすんなというと仕事が回らなくなる矛盾。
295デフォルトの名無しさん:2009/02/22(日) 17:31:30
ソフトウェア開発に限っていえば日本はバカが得をする国だからね。
C++なんか流行らん訳だ。
296デフォルトの名無しさん:2009/02/22(日) 18:23:07
まるで日本以外ではC++が流行っているかのような口ぶりだな
297デフォルトの名無しさん:2009/02/22(日) 18:42:58
Cで8年くらい仕事して、C++にして6年仕事してるけど
C++のメリットよりもデメリットが大きい印象変わんないな。
298デフォルトの名無しさん:2009/02/22(日) 19:40:34
柄の所になぜか刃が付いてて握ると手をケガするようなライブラリが
C++にはいっぱいあるという皮肉も通じないのか
299デフォルトの名無しさん:2009/02/22(日) 19:51:44
ライブラリ?
300デフォルトの名無しさん:2009/02/22(日) 20:06:57
「柄」の所になぜか刃が付いてて「刃」の所になぜか刃がついてないんだろ?
「柄」と「刃」を取り違えてるんだよバーカ、という皮肉も通じないのか
301デフォルトの名無しさん:2009/02/22(日) 20:08:08
ライブラリ?
302デフォルトの名無しさん:2009/02/22(日) 20:14:28
標準ライブラリだよ

たとえばauto_ptrなんて全方向に刃が付いてるじゃないか
どこ持ってもケガする最低のライブラリ
303デフォルトの名無しさん:2009/02/22(日) 20:23:00
いやライブラリ以前にもたくさん問題がw
304デフォルトの名無しさん:2009/02/22(日) 20:39:40
302が鬼の首をとったが如くlist<auto_ptr>の話をしだすのに
100 iostream。
305デフォルトの名無しさん:2009/02/22(日) 20:46:05
日本ではというか、C++は窓以外閑古鳥だろ。
unixに至っては数ある有象無象言語のひとつ。
306デフォルトの名無しさん:2009/02/22(日) 21:12:45
そう思っていても使わざるを得ない状況がある以上、習得するしかなかべ。
プログラマは言語選ぶ権利ないし。
307デフォルトの名無しさん:2009/02/22(日) 21:33:37
まあ下っ端とか、請負プログラマはそうだろうね
308デフォルトの名無しさん:2009/02/22(日) 21:45:42
つまりうわっぱプログラマはC++も使えないカスばかり、と。
309デフォルトの名無しさん:2009/02/22(日) 21:49:10
C++使いこなしているからこそC++はイイとかダメとかいえるに決まってるじゃないか。
みんなプログラミング言語C++を3回は通して読んだレベルだよ。
310デフォルトの名無しさん:2009/02/23(月) 02:23:32
>>309
ほとんどネットでその半分が2chだなぁ。

auto_ptrって使ったことないな。そもそもnewしないからなぁ。
総括のクラスをスタックに確保してアプリ完成!って感じだな。
実用アプリってほとんど作ったことないけどね。
311デフォルトの名無しさん:2009/02/23(月) 08:21:00
大きなアプリ書こうとするとnewは必要だよ。
モジュール・タスク分割してそれらの間のAPIを書くのに
newを使うか否かでシンプルにも複雑にもなる。

newをつかって例外安全に書くんならauto_ptr必須。
312デフォルトの名無しさん:2009/02/23(月) 08:28:01
コンテナに入れられない時点でauto_ptrは使い物にならない。
313デフォルトの名無しさん:2009/02/23(月) 08:32:32
auto_ptrなんて使えないものを作った奴と標準に含めた奴は切腹しろ
314デフォルトの名無しさん:2009/02/23(月) 08:52:39
>>312
想定する用途が違うだけなのに、自分が使いたいときに使えないというだけで
ダメ扱いするのは頭悪いんじゃない?
次の標準ではお前の欲しかった shared_ptr も入るよ。
315デフォルトの名無しさん:2009/02/23(月) 09:08:05
std::vector obj(sizeof(hoge) * n);
hoge *pobj = &obj[0];

で十分
316デフォルトの名無しさん:2009/02/23(月) 09:41:13
>>315
中身を解放しませんよ。

ま、ヒープの問題はCでもsetjump longjumpを知らないところで使われたら一緒だし目くじらたてるほどのものかと思う。
317デフォルトの名無しさん:2009/02/23(月) 09:52:28
>>315
釣られてみるが、
std::vector<hoge> obj(N);
でやらないメリットってなんだい??
318デフォルトの名無しさん:2009/02/23(月) 20:36:15
>>317
コピーコンストラクタ(爆)を律儀にN回呼んで
貴重な実行時間を食いつぶすから
319デフォルトの名無しさん:2009/02/23(月) 20:46:03
>>318
???
320デフォルトの名無しさん:2009/02/23(月) 21:00:49
>>318
すまん。俺もわかんね。
>>315だとコピーコンストラクタ呼ばれないの?
321デフォルトの名無しさん:2009/02/23(月) 21:18:45
>>317
クラスの不変条件を達成するにはクラスのメンバ変数を初期化しないといけない。
そのためにはコンストラクタは呼ばれるべきでしょ。
俺の場合だけど、コンストラクタは適当に書いて、Init()ってメンバ関数で本格的に初期化してる。
再利用できるようにも一応考えてつくってる。

あ、また、ミリセカンドでチューニングしてる人か。
322デフォルトの名無しさん:2009/02/23(月) 21:25:35
>>320
C++を覚えたばっかりで、良く分からないんだが
>>315だとコピーコンストラクタは呼ばれない(というか、たぶん、コンパイルできない)
323デフォルトの名無しさん:2009/02/23(月) 21:31:23
std::vector<hoge> obj(N, hoge(1, 2));
と書くと、各要素がhoge(1, 2)でコピー初期化される。
>>317は、それがデフォルト引数で省略されているだけ。

>>315はおそらくstd::vector<char>だろうが、
charの初期化なら実行時間が少しはましだったのだろう。

コンパイラが賢ければ、315のようにcharに置き換えて良い型
(コンストラクタがない)なら、
hogeのままでもそう時間は変わらないことが期待できるけど。

一応、次の規格では改善されて、デフォルト引数使う横着はなくなるので、この心配はなくなるはず。
324320:2009/02/23(月) 22:06:29
>>322-323
レスさんくす
325デフォルトの名無しさん:2009/02/23(月) 22:26:45
アホの妄言には付き合ってられんわ
326デフォルトの名無しさん:2009/02/23(月) 22:37:37
>>323
で、結論は?
327デフォルトの名無しさん:2009/02/24(火) 00:05:44
結局、C++一通りやったプログラマってHSPに原点回帰するんだよな。

俺の知り合いも、ついこの間C++の仕事辞めて今はHSPでフリーウェア作ってる。
328デフォルトの名無しさん:2009/02/24(火) 00:31:15
それはない。そもそも原点じゃないし。
329デフォルトの名無しさん:2009/02/24(火) 01:54:46
>>327ないしその「知り合い」とやらが初めに触った環境なんだろ。察してやろうぜ
330デフォルトの名無しさん:2009/02/24(火) 12:34:33
>>323
>デフォルト引数使う横着はなくなる
どういうこと?
331デフォルトの名無しさん:2009/02/24(火) 13:35:42
vectorはresizeできるのに、
vector<hoge> obj(N);とサイズ決め打ちで確保してるのは横着じゃないの?
332デフォルトの名無しさん:2009/02/24(火) 15:24:29
>>331
大きさが既に分かっているなら
vector<hoge> obj(N);
の方がいいんじゃないの?
333デフォルトの名無しさん:2009/02/24(火) 16:54:00
>>332
コンストラクタに時間を取られるので、なるべく呼びたくない、
という話だから。 >>318
334デフォルトの名無しさん:2009/02/24(火) 17:30:38
>>333
resizeしても、コンストラクターは呼び出されるだろ?
335デフォルトの名無しさん:2009/02/24(火) 17:44:36
>>334
最後まで参照されない要素はコンストラクトしないで済む。
336デフォルトの名無しさん:2009/02/24(火) 18:02:30
>>331
細かい話だが、サイズが最初からわかってるなら、決め打ちしたほうがメモリ確保回数が減るので多少マシだと思う。
337デフォルトの名無しさん:2009/02/24(火) 18:11:35
>>336
大きさの上限が分かってるケースと、
全ての要素が参照されるケースを区別できるようにした方が良いよ。
reserveも使えるようになってね。
338デフォルトの名無しさん:2009/02/24(火) 18:43:07
あれは構造体のmallocの代わりじゃないの?
339デフォルトの名無しさん:2009/02/24(火) 19:14:09
>>330
>>331
323じゃないけど

現状の規格で
explicit vector(size_type n)のシグネチャで呼ばれるコンストラクタが
explicit vector(size_type n, const T& value = T(),
const Allocator& = Allocator());
 のようなデフォルト引数による実装になっているのが
横着といいたいんじゃないの?

Tのデフォルトコンストラクタがinlineで何もしない実装の場合
新しい規格なら要素ごとにT()が呼ばれるから実質コンストラクタ
呼び出しのオーバーヘッドがなくせる。
340デフォルトの名無しさん:2009/02/25(水) 01:15:19
すぐこういう話になるからC++はダメなんだよ
コンストラクタだのデストラクタだの知らない所で勝手にコソコソ余計なことやる奴が多すぎて

Cならそんなこと考える必要もないのに
341デフォルトの名無しさん:2009/02/25(水) 01:37:01
STLの実装に噛みつくなんてどんだけ世間知らずなド素人なんだよww
342デフォルトの名無しさん:2009/02/25(水) 01:43:55
Cはsize_tを画面に出すだけでも破綻するけどね。
343デフォルトの名無しさん:2009/02/25(水) 01:48:16
DWORD
344デフォルトの名無しさん:2009/02/25(水) 01:56:50
>>340
今時、どっちもどっちだと思うぞ
算数の計算のしかたもしらん多すぎ!
数値計算やらせると、誤差とか桁落ちとか理解してねぇもん
つか、仕様として数式与えられた時点で、ほぼ全員アウトだろ?
345デフォルトの名無しさん:2009/02/25(水) 01:57:34
floatの仕組みを理解してる奴が少ない現実。
346デフォルトの名無しさん:2009/02/25(水) 07:51:29
float関係ないんじゃね?
正数演算であっても
x/y * z があえられたときに正直に
(x / y) * z って計算する奴多くね?
347デフォルトの名無しさん:2009/02/25(水) 10:18:03
じゃあ、それってx*z/yが正しいの?桁堕ちの誤差で?
348デフォルトの名無しさん:2009/02/25(水) 10:42:24
floatの仕組みなんて文理関係なく大学の教養で必修としてやるだろ。
少なくとも東大ではそうだ。
349デフォルトの名無しさん:2009/02/25(水) 11:05:20
いまどきは知らんが、20年ほど前は教養でそんなことやらんぞ。
専門の講義で数値解析やるときくらいかね(高校の授業にコンピュータとかない時代だから、まあ当然か)。

それ以前に、その時代にパソコン触ってた連中はBASICの入門書とかで0.1を10回足して1にならにでしょ、みたいなの見てるから、むしろそっちで知ってるはず。
MSXはBCDだからちゃんと1になるよ〜とかね。
350デフォルトの名無しさん:2009/02/25(水) 12:00:51
>>349
何処の田舎の話だよ
工業高校の電気科だが、20年前、普通に浮動小数点がどうのBCDがどうのやったぞ

まあ、当時の俺様にはさっぱり理解できなかったがな
351デフォルトの名無しさん:2009/02/25(水) 12:11:05
double d1 = 1.0 - 0.9;
double d2 = 1.0/10.0;
assert( d1 == d2 );

うぼぁ。
352デフォルトの名無しさん:2009/02/25(水) 12:49:27
>>339
でもとにかくオブジェクトの構築は絶対に
必要なんだから、いずれコンストラクタは
呼び出されるでしょ?

コンテナのコンストラクタでわざわざ格納
オブジェクトのコピーコンストラクタが
呼び出されていたのがなくなるということ?
ちょっとした改善?
353デフォルトの名無しさん:2009/02/25(水) 12:55:55
>>350
いやオレもやらんかったな。
普通大学の一般教養にはないだろ。
有効桁なら高校以下の理科で習ったが。

>工業高校の電気科
だからやったんじゃね。ちょっと特別。
354デフォルトの名無しさん:2009/02/25(水) 13:02:52
>>350
京都大学の話。
355デフォルトの名無しさん:2009/02/25(水) 13:10:59
田舎でおk
356デフォルトの名無しさん:2009/02/25(水) 13:47:44
>>352
デフォルトコンストラクタ(場合によっては+代入)と、コピーコンストラクタでは、
パフォーマンスが違うことがあり得る、という話。
357デフォルトの名無しさん:2009/02/25(水) 14:17:06
高校レベルの話を大学でやらないとは...
358デフォルトの名無しさん:2009/02/25(水) 14:28:44
>>357
高校でやってれば大学でやる必要ないのだが?
359デフォルトの名無しさん:2009/02/25(水) 14:56:23
で、たとえば>>351みたいな assertion failed を起こさないようにするには
C/C++/java などではどんなライボラリを使えばいいのか答えなさい(涼宮ハルヒ風に^^)
360352:2009/02/25(水) 18:35:17
>>356
それはわかる。

格納オブジェクトのコンストラクタがコピー
コンストラクタよりも軽い場合に、コンテナの
コンストラクトが速くなる、ということでおK?
361デフォルトの名無しさん:2009/02/25(水) 19:06:55
>>360
おけ。

改めて調べてみたら、C++0xだと、コピーできないオブジェクト
(コピーコンストラクタも代入も無し)が一般的になりそうな感じが。
C言語との乖離が広がって、Linusさんがまたぼろくそにけなしそう。
362デフォルトの名無しさん:2009/02/25(水) 19:26:15
現時点でもfstreamとかauto_ptrとか、
あるいは自作クラスでもコピー禁止にするものが多いよ。
JavaなんかでなんでもかんでもCloneable実装しないのと根は同じ。

コピーして自由に持ちまわれるようにするには、
ポインタ(生でもshared_ptrでも)にしまうのは今でも0xになっても同じ。
いやまあ、コピー不可でもvectorに直接入れられるとか、変化はあるけど。
363デフォルトの名無しさん:2009/02/25(水) 20:09:09
まあそうっちゃそうなんだけど。

=deleteで{デフォルト|コピー}コンストラクタがないことを明示できたり。
emplaceでpush_backと同時にコンストラクトできたり。
move semanticsが導入されたり。

で、今まで、コーディング上のテクニックですよ、みたいな感じで
使っていたコピー禁止オブジェクトが、言語で手厚くサポートされた
第1級のオブジェクトになったような風向き。
364デフォルトの名無しさん:2009/02/25(水) 22:19:58
笑えるスレだなw >>347
> じゃあ、それってx*z/yが正しいの?桁堕ちの誤差で?
って聞いてるのに誰反応してないってどおよ???
Linus が, 泣きたくなるのは当然だ

>>347
x <= 1/3; 1/3 == 0; x * 7 == 0
x <= 1*7; (x == 7); 7/3 は少なくとも0じゃない
365デフォルトの名無しさん:2009/02/25(水) 22:21:55
コピーコンストラクタと代入演算子を意味もなく特別扱いしてきたツケを払ってるだけだろ
コピーなんてのは必要な時にだけ用意する操作でいいのに
366デフォルトの名無しさん:2009/02/26(木) 00:30:35
>>365
structとclassの違いがデフォでpublicかprivateかの違いしか持たせなかったのが根本原因だね。
367デフォルトの名無しさん:2009/02/26(木) 01:28:27
typedef double Real;
とかやる奴とは一緒に仕事したくない。Realはないだろ。。。
368デフォルトの名無しさん:2009/02/26(木) 01:40:43
real型を組み込みで持つDという言語があってな…
369デフォルトの名無しさん:2009/02/26(木) 06:22:50
いや、Real型と言えば、Pascalのほうが先だろう。
370デフォルトの名無しさん:2009/02/26(木) 09:20:36
>>362
>コピー不可でもvectorに直接入れられる
再配置はどうなるの?
371360:2009/02/26(木) 09:23:36
>>361
はあく。あり。

じゃあメリットは現実にはあんまりなさげ。
372デフォルトの名無しさん:2009/02/26(木) 09:31:35
>>365
C++がここまでの領域に達するとは、
当時に予測することは不可能。
最初はCの薄喇叭だったんだし、
PODとの互換を重視したのはやむなし。

>>366
そのへん、後発のC#はさすが。
373デフォルトの名無しさん:2009/02/26(木) 10:38:39
>>365,366
C言語のコピー渡し大好き仕様にあわせたのが原因。
374デフォルトの名無しさん:2009/02/26(木) 13:41:22
>>364
よく >>347 みたいな曖昧な質問に答えられるな。

>>347
桁落ちの誤差の範囲内で正しいのか?と聞きたかったのか、
桁落ちの誤差があるのに正しいつもりか?といってるのか。
未だにわからん。

それに、xの値が大きいときの話が抜けてるよ。
375デフォルトの名無しさん:2009/02/26(木) 14:26:06
そもそもの前提の仕様としてx/y * zが渡されるってとこでもうダメだろ。
必要な精度も何も書いてないんだから
376デフォルトの名無しさん:2009/02/26(木) 14:33:05
型も書かれてないしな
377デフォルトの名無しさん:2009/02/26(木) 14:37:30
素人は
他人のアラだけ
よく見える
378デフォルトの名無しさん:2009/02/26(木) 20:38:30
>>370
そのタネがムーブセマンティクス。
新たにvectorに入れられるようになるのは、
auto_ptrのようなコピーがダメでも移すだけならいいでしょうという型。
(auto_ptr自体は非推奨で放置プレイだからvectorに入れられないままみたいだけど)
379デフォルトの名無しさん:2009/02/26(木) 21:57:36
うーん。
Cと同様にメモリ管理はプログラマサイドに丸投げなくせに、ムーブやらなにやら中途半端に導入されてもなぁ。
そこまでやるならガベコレまで面倒見ろという感じ。
380デフォルトの名無しさん:2009/02/26(木) 22:32:33
>>379
丸投げじゃない。
deleteを書かなくていいように進化してる。
381デフォルトの名無しさん:2009/02/26(木) 22:34:44
>>379
ガベコレさえ取り込もうとしているからおそろしい。
いろんな意味で。
382デフォルトの名無しさん:2009/02/26(木) 22:59:35
>>380
書かなくても、意識しないといけない時点でプログラマに責任を負わせてるでしょ。
383デフォルトの名無しさん:2009/02/26(木) 23:12:22
ムーブはむしろコードの手間は増えても効率上げたいっていう機能だろ
GCとは思想が逆
384デフォルトの名無しさん:2009/02/27(金) 01:03:41
385デフォルトの名無しさん:2009/02/27(金) 01:39:40
>>382
意識したくてもできない言語よりずっと頼りになる。
386デフォルトの名無しさん:2009/02/27(金) 04:01:58
気が向いたら中を見たいけど、普段は見たくないって香具師に向いてる気がする。>C++
387デフォルトの名無しさん:2009/02/27(金) 08:49:18
>>378
>そのタネがムーブセマンティクス。
なるほど。豚。
ムーブってなんだろ、と見るたびに疑問
だったんだけど、そうゆうことなのね。

使いどころが難しそう。
388デフォルトの名無しさん:2009/02/27(金) 09:01:57
>>385
ならcでいいや
389デフォルトの名無しさん:2009/02/27(金) 09:45:45
実際、2ch(匿名)で件の文章だけ見たら、「馬鹿なこと言ってら、こいつ」って思う内容でしょ? 本人に高いスキルがあっていろんな功績、貢献がある人物でも、個々の言動の評価はまた別。
ちなみに無知であること自体を非難するつもりは毛頭無いです。さすがに私もそこまで愚かじゃありません。
たぶん、malloc/reallocだけでの動的メモリ管理云々の文章を読んだことがあるということはその人のブログなりなんなりを見たことがあるんだと思うけど。
390デフォルトの名無しさん:2009/02/27(金) 10:15:56
>>388
がんばって{c|m|re}alloc/free書いてね。setjump/longjumpにも気をつけてね。
391デフォルトの名無しさん:2009/02/27(金) 10:29:08
>>390
ミスってるぞ
392デフォルトの名無しさん:2009/02/27(金) 10:30:28
Cなら、malloc/freeが内部で呼んでるbrk/mmapでメモリ管理ライブラリ書いたほうが楽。
完璧に一元管理できるし。
393デフォルトの名無しさん:2009/02/27(金) 10:39:57
>>392
移植も再利用も考えないなら、なんぼでも手抜きできるやん。
わざわざヒープ解放しなくても、プログラムが終了したら勝手に解放されるし!みたいな。
394デフォルトの名無しさん:2009/02/27(金) 10:48:13
移植なら、マクロでmallocに置き換えるだけ。
それより、ライブラリのなか全部知りたいだけ。
395デフォルトの名無しさん:2009/02/27(金) 10:54:18
>>394
で、そのマクロとやらで問題が起きたら「知るかそんなの」でしょ。
その調子でvtblやら例外(のまねごと)やら、全部自前で実装するべし。応援するよ。
396デフォルトの名無しさん:2009/02/27(金) 11:01:43
それはありがとう。
OSやTCP/IPスタック書くのも勉強になるし。
397デフォルトの名無しさん:2009/02/27(金) 12:34:31
10年後
396「Linuxプログラマはウンコ。寄ってくるな」
398デフォルトの名無しさん:2009/02/27(金) 12:39:22
share_ptrやauto_ptrでも問題でたら(使い方間違ってたとかで)
「知るかそんなの」でしょ
同じだよ所詮
399デフォルトの名無しさん:2009/02/27(金) 12:52:54
>>398
(問題点も含めて)ちゃんとドキュメントされてる。
テストされてる。パフォーマンス、データ型に対する汎用性、移植性も考慮されてる。
400デフォルトの名無しさん:2009/02/27(金) 13:30:21
知るかそんなの
401デフォルトの名無しさん:2009/02/27(金) 13:31:11
401
402デフォルトの名無しさん:2009/02/27(金) 13:35:49
C++プログラマは人間のクズ、死ねよ
403デフォルトの名無しさん:2009/02/27(金) 14:21:02
よく使われるマクロの置換ぐらいで目茶苦茶な反論してくるC++信者はキチガイだな。
そもそもCに寄生しないと生きていけないC++のくせにw
404デフォルトの名無しさん:2009/02/27(金) 14:42:15
C++信者はキチガイ
近寄るべからず
405デフォルトの名無しさん:2009/02/27(金) 15:17:44
>>390
皮肉にもなってない…
白ける
406デフォルトの名無しさん:2009/02/27(金) 15:35:23
要するに
「俺よりバカなヤツと、俺より頭の良いヤツ(俺の理解できない手法を使う)は来るな」
という意味だよな。
407デフォルトの名無しさん:2009/02/27(金) 15:41:07
>>1-406
負け犬遠吠え
真・スレッドリスターター。。。( ̄ー ̄)ニヤリッ
409デフォルトの名無しさん:2009/02/27(金) 17:23:29
真実上げ
410デフォルトの名無しさん:2009/02/27(金) 19:51:37
>>398
それでも問題出る人用のも出来てきてる
411デフォルトの名無しさん:2009/02/28(土) 01:48:29
C++厨は無闇にマクロ嫌ってる奴が多いけど
正直連中が使ってるテンプレートなんかよりCの素朴なマクロの方が
ずっと明快だし、安全だし、高速だし、使いやすいよな
412デフォルトの名無しさん:2009/02/28(土) 03:00:30
マクロ安全だと思ってるCプログラマはいないだろ
ロベールさんだって怖いって言ってたよ
413デフォルトの名無しさん:2009/02/28(土) 04:43:16
414デフォルトの名無しさん:2009/02/28(土) 08:29:36
>>411
テンプレートにたいして明快だと思えない人間に、マクロトリックを使ってほしくないね。
415デフォルトの名無しさん:2009/02/28(土) 08:51:07
マクロは複数行で \ つけるのが鬱陶しい
416デフォルトの名無しさん:2009/02/28(土) 11:11:20
>>415 エディタがマクロの範囲を判断して適当にくっつけてくれるだろ?
417デフォルトの名無しさん:2009/02/28(土) 11:17:11
>>415
鬱陶しいなら、改行文字と同じように、¥も非表示にすればいいんじゃね?
418デフォルトの名無しさん:2009/02/28(土) 11:47:03
可変引数テンプレートを実装する為とかforwarding problemの解決の為にマクロは必須
C++厨というかテンプレート厨は同時にマクロ厨でもある
419デフォルトの名無しさん:2009/02/28(土) 12:01:34
マクロがテンプレートより優れている4つの理由

#明快さ
マクロの意味はマクロ名だけで明確に決まるので、定義を追いやすい。
また、大抵のコンパイラではプリプロセスだけ行うことができるので実際にどう展開されてるか確認できる。
引数に依存した複雑な推測をコンパイルと一緒にやってしまうテンプレートにはどちらも叶わぬことである

#安全
マクロは括弧を十分に付けることと、#undefや二重定義にさえ注意すれば、大抵は思った通りに展開される。
一方テンプレートが思った通りに展開されないのは日常茶飯事である。

#高速
マクロは単なるテキスト置換なので極めて高速に行える。
テンプレートはパーシングの負荷はもとより、再帰のせいで止まらないことすらある。

#使いやすさ
マクロの定義はやりたいことをがそのままテキストとして書かれる。
テンプレートは特殊化、SFINAEを乱用した恐ろしく回りくどいコードになる。
420デフォルトの名無しさん:2009/02/28(土) 12:19:06
安全 の項は何が安全なんだろ。
421デフォルトの名無しさん:2009/02/28(土) 12:49:31
少なくとも型に関してはまったく安全じゃないな
422デフォルトの名無しさん:2009/02/28(土) 12:52:27
さらに展開されてからエラーになることによるエラー箇所の特定の難しさ、と
テンプレートがらみの鬼のようなエラーログ
ユーザに対する負担はいい勝負だな
423デフォルトの名無しさん:2009/02/28(土) 13:12:35
テンプレートはエラーが出ても意味不明で結局対処できないからな。
0xでエラーメッセージが改善されることに期待だ。
424デフォルトの名無しさん:2009/02/28(土) 13:54:01
C++をろくに知らないC使いが文句言うだけのスレになってる。
>>1のおっさんが、そうでないことを祈るしかないな。
425デフォルトの名無しさん:2009/02/28(土) 14:07:02
文句いうなら対案を出せってか
少なくともGitに関してはCだけで十分みたいだから対案を出す必要はない
むしろCだけでは不十分な具体例を出す必要があるんじゃないか
426デフォルトの名無しさん:2009/02/28(土) 14:42:58
>>424
linusを知らないことは無いだろう
427デフォルトの名無しさん:2009/02/28(土) 14:50:15
linusが知らないことはあるだろうけどな
428デフォルトの名無しさん:2009/02/28(土) 14:53:19
>>425
>>1のおっさんがLinusの言葉の一部を切り取って煽ってるだけ。

対案。>>1を以下に書き換える。

「唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったとき」
Linus
429デフォルトの名無しさん:2009/02/28(土) 15:28:09
適材適所ってやつだよ。
Cが好きでCばっかりやるのは自由だ。
C++を批判するなら、C++を極めてからにしてくれww
まともに使えないウンコがいくら集まってもウンコなんだよww

430デフォルトの名無しさん:2009/02/28(土) 15:29:59
C++って「ぼくのかんがえたさいきょうのげんご」的な厨房臭さがあるからなぁ
431デフォルトの名無しさん:2009/02/28(土) 15:31:27
最強言語?なにそれ・・・ばっかじゃないのww
432デフォルトの名無しさん:2009/02/28(土) 15:31:55
最強言語?なにそれ・・・ばっかじゃないの?ww
433デフォルトの名無しさん:2009/02/28(土) 15:38:19
>>431,432
アンタがどこかしら弱いのだけはよく分かった。
434デフォルトの名無しさん:2009/02/28(土) 15:39:12
>>433

やっぱり、ウンコはウンコだな
435デフォルトの名無しさん:2009/02/28(土) 15:39:55
あ、めんごめんご、ウンコ以下ですね
436デフォルトの名無しさん:2009/02/28(土) 16:15:32
>>418
どっちもC++0xでマクロ使わずに解決しようとしている辺り、
C++陣営はよっぽどマクロが嫌いらしい。

しかし、マクロなしではどうせやっていけるわけないのだから、
ようするに単なるツンデレだろう。
437デフォルトの名無しさん:2009/02/28(土) 16:18:10
インクルードガード以外にマクロは不要
438デフォルトの名無しさん:2009/02/28(土) 16:46:42
ライブラリやシステムコールでマクロ使いまくり
そもそもC++でCの機能使いまくりのC++厨は死ねよ
439デフォルトの名無しさん:2009/02/28(土) 16:52:56
その理屈はよくわからない
440デフォルトの名無しさん:2009/02/28(土) 16:59:31
C++厨はマクロの__FILE__や__LINE__使ったら自殺するらしいw
441デフォルトの名無しさん:2009/02/28(土) 17:15:13
boostのassert系の関数では使われまくってるな
442デフォルトの名無しさん:2009/02/28(土) 17:42:16
でもさ、移植性を気にして
#ifdefでマクロをバシバシ切り替えているのって結構あるぜ。
あれ超ウゼー。
443デフォルトの名無しさん:2009/02/28(土) 18:37:24
Cで移植性の高いプログラムを書けるのはひとえに#ifdefのおかげ
あれなしに別々のコンパイラ特有のコードを混在させることはできない
444デフォルトの名無しさん:2009/02/28(土) 18:56:01
Linusクラスの人間がC++プログラマはウンコっていうなら納得するが
おまえらに言われてもな。おまえらがウンコだろって言われて終了。
445デフォルトの名無しさん:2009/02/28(土) 19:05:02
>>437
おれはpragma once好きなんだけど、みんな嫌がっているんだよな。
この辺の変なこだわり(色々と理由があるのは理解するけど)が
C++のいやらしいところだなあ。と思ってみたり。
446デフォルトの名無しさん:2009/02/28(土) 20:26:45
pragma onceを万が一インクルードガードに
書き換えなきゃならなくなったときのことを考えたら、
そりゃ嫌がられるさ。
447デフォルトの名無しさん:2009/02/28(土) 20:41:08
両方書いとけばいいんだよ。
面倒くさい?全くもってそのとおりです。
448デフォルトの名無しさん:2009/02/28(土) 21:51:58
釣りのためにLinuxまで作ってしまったLinusだが、Gitでは逆に作ってから
釣りあげられてしまったね。
笑える。
因果応報だよ。
449デフォルトの名無しさん:2009/02/28(土) 22:25:08
何故 C++ で書かれたバージョン管理システムが普及しないのかを考えたほうが
いいのかもしれない。
monotone くらいか?
450デフォルトの名無しさん:2009/02/28(土) 22:55:05
C++のバージョン管理システムなんて恐ろしくて使えるか
バージョン管理システムのバージョンを管理するシステムが別に必要になる
451デフォルトの名無しさん:2009/02/28(土) 23:30:43
このスレの全ては>>444にまとめられる
452デフォルトの名無しさん:2009/02/28(土) 23:32:41
要は MFC 使ってた奴等が
「C++ 出来ます!!!」
って、大量に蔓延ったのが問題なだけだろ?
453デフォルトの名無しさん:2009/03/01(日) 00:41:52
>>450
SCIMとscim-bridgeを思い出したw
454デフォルトの名無しさん:2009/03/01(日) 01:04:37
ゲーム業界でのC++馬鹿はひどい。
どっかの本に書いてあったことを理解せず妄信してまともに動作しないものばかりつくってる。
特に大手の勘違い野郎に多い。
Cのころのほうがまともだった。これはコード量の問題ではない。
455デフォルトの名無しさん:2009/03/01(日) 01:05:30
例えば?
456デフォルトの名無しさん:2009/03/01(日) 01:10:54
組み込み有限メモリでガベージコレクション期待してるとか、
必要でもないポリモーフィズムつかって追跡性落としたりとか、
平気でシングルトンパターン使って自慢げな顔してたりとか。
457デフォルトの名無しさん:2009/03/01(日) 01:15:39
>組み込み有限メモリでガベージコレクション期待してる

それC++馬鹿なの?
458デフォルトの名無しさん:2009/03/01(日) 01:16:17
エンジニア(SE とか マも含む)にとって一番必要な資質

新しい物見かけたら
「ドライバー(ねじ回し)持ってきて!!!」
てな、感じの好奇心

> どっかの本に書いてあったことを理解せず妄信
エンジニアではない
459デフォルトの名無しさん:2009/03/01(日) 01:18:04
>>458
まあほとんどエンジニアなんていないってことだな。
本に書いてあることが正しくて現実を理解しようとしない。
460デフォルトの名無しさん:2009/03/01(日) 01:26:17
その前に本すら読まない奴はエンジニア以下だけどね^^
461デフォルトの名無しさん:2009/03/01(日) 01:29:10
達人プログラマーには技術書とそうでない本を月に一冊くらいずつ読めみたいなこと書いてたな。
自分の技術に投資し、自分の畑以外の知見を広げる努力ができなければエンジニアではいられない、とね。
462デフォルトの名無しさん:2009/03/01(日) 01:30:15
愚者は経験に学び、賢者は歴史に学ぶ

経験=ドライバー(ねじ回し)
歴史=どっかの本
463デフォルトの名無しさん:2009/03/01(日) 01:33:02
頭でっかちで自分では何も出来ないやつに人気のC++
464デフォルトの名無しさん:2009/03/01(日) 01:34:23
>>463
ちっちぇえなお前の頭ww
465デフォルトの名無しさん:2009/03/01(日) 01:34:28
技術はプライベートで検証してから導入してください。
おまえのオナニーでデスマとかありえん。
466デフォルトの名無しさん:2009/03/01(日) 01:35:25
どっかの本を妄信している人間を「それは妄信だ」と断じるなら
少なくともその「どっかの本」くらいは読んでいて当然だわな

そうでなく他人に妄信だというなら
おまえ自身が妄信しているのだと
467デフォルトの名無しさん:2009/03/01(日) 01:35:46
頭小さいけどモノつくれちゃうから収入多くて困っちゃう。
468デフォルトの名無しさん:2009/03/01(日) 01:36:45
俺は難しい本を読んでる!とか思ってるやつとかホント使えん。
普通はパラパラって目を通せばその本の価値くらいわかる。
469デフォルトの名無しさん:2009/03/01(日) 01:37:51
学びて思わざれば・・・じゃないが
本で学び、己で考え、経験して確かめる。

何事も中庸の徳だ。

本を読まない奴はエンジニアじゃないし
本を読むばかりで自分で考えようとしない奴もエンジニアじゃない。
470デフォルトの名無しさん:2009/03/01(日) 01:40:21
本を妄信するにせよ、経験を妄信するにせよ
とりあえず、現場ではビッグマウスはやめて心にしまっておけといいたい。
特に若いなら。
471デフォルトの名無しさん:2009/03/01(日) 01:40:25
>>462
中がどうなっているか知ろうとする好奇心が必要なのであって
その好奇心すらない奴は
「経験からも歴史からも何かを得ようとはしない」
と言ってると思うんだが
472デフォルトの名無しさん:2009/03/01(日) 01:42:30
お前らよっぽど本読みたくないんだなw

せいぜい「経験」とやらを積んで、俺の職場には来ないでくれ。
473デフォルトの名無しさん:2009/03/01(日) 01:42:36
>>468
よし、お前には孔子の名言をプレゼントだ。
学びて時にこれを習う、亦た説ばしからずや。

もちろん、お前は孔子より偉いに違いない。
474デフォルトの名無しさん:2009/03/01(日) 01:43:23
やっぱC++信者はおかしいわ
475デフォルトの名無しさん:2009/03/01(日) 01:45:20
Linuaは「C++プログラマはウンコ」って言ってるけど
どう考えても奴の文章からは本をいっぱい読んでるように見えるぞ。ん?
476デフォルトの名無しさん:2009/03/01(日) 01:47:23
>>471
そういうことだね。知的好奇心ないやつはエンジニアには向いてない。
知りたいことがあるから本を読む。
本を読んで疑問に感じたことを確かめずにはいられない。
477デフォルトの名無しさん:2009/03/01(日) 01:50:52
だんだん派遣が夢を語るスレになってきたな

こんなところで御託を並べる時間があったら、本読んで指動かしてプログラミングしろよw
478デフォルトの名無しさん:2009/03/01(日) 01:53:27
>>477
> 本読んで指動かして
本の内容を理解してないんだったら意味がないわけだが
479デフォルトの名無しさん:2009/03/01(日) 01:57:59
まぁ、何をどういおうと、本を読まないことのいいわけはできない。
480デフォルトの名無しさん:2009/03/01(日) 01:58:57
>>478
その通りだよ

でも、上の方でねじ回し使えとか、経験が云々とか抜かしてる奴がいるからさ
そいつらの言う通りなら、そいつら自身が先ず指動かせよってことで
481デフォルトの名無しさん:2009/03/01(日) 02:16:57
>>480
>>454
> どっかの本に書いてあったことを理解せず妄信してまともに動作しないものばかりつくってる。
言ってることが発端なんだから本を読めの指摘はおかしい

本に書いてあることを理解しようとする好奇心は必要
つか、ねじ回しにしたって好奇心が必要って意味での*極端な*例だと思うぞ
482デフォルトの名無しさん:2009/03/01(日) 02:21:19
>>481
だから、他人に本を読めだの、ねじ回せだの言ってる奴に、まず自分からやれと言ってるだけだ。
483デフォルトの名無しさん:2009/03/01(日) 02:28:31
>>482 彼らは自分からやってるかも知れないじゃないか?
484デフォルトの名無しさん:2009/03/01(日) 02:37:29
私的感情や政治的理由で「決めつけ」する奴が、
エンジニアに必要な、探究心などをの素質を
備えていると思う?
485デフォルトの名無しさん:2009/03/01(日) 02:51:10
>>482
あぁ、その点は大丈夫。少なくとも本に関しては好きだからどっちゃり読む。
486デフォルトの名無しさん:2009/03/01(日) 02:51:51
>>484
ねじ回しの方は >>481 で指摘した部分に対して
好奇心(言い換えれば探求心?)すら持てないような
奴はエンジニアたる資質がないと言ってるだけじゃない?

正論だと思うけどな………

本の方は末端反射で的外れなことを言ってるだけだから
それでいいだろうけどさ
487デフォルトの名無しさん:2009/03/01(日) 02:59:27
本に関してはw好きだからwww
488デフォルトの名無しさん:2009/03/01(日) 03:00:15
あれ?もしかして、本嫌いなのに仕方ないから読んでる人?
かわいそうに・・・勉強するのつらいでしょ、それじゃあ。
489デフォルトの名無しさん:2009/03/01(日) 03:01:54
俺も本好きで読んでるな。
好奇心とか特に考えず、活字がないとものたりないっつーか。
俺の周りでは月2,3万本代使うのが普通の連中しかいない。
490デフォルトの名無しさん:2009/03/01(日) 03:05:16
まだ本を読まないこと正当化しようとする奴がいるのか?w
491デフォルトの名無しさん:2009/03/01(日) 03:09:25
このスレは本を読まないクソだらけ、と。^^
492デフォルトの名無しさん:2009/03/01(日) 08:43:50
どの本といわず、ただ本を読め、ってナンセンスだろ
矢沢なんとかの糞本でも何かプラスになるって言うのか?
493デフォルトの名無しさん:2009/03/01(日) 10:51:45
つうか、深夜まで2chやってるやつが本よめとか馬鹿みたい。
その時間にお前が本嫁よ。

本読みながらやってるとしたら、集中力なさすぎ。
494デフォルトの名無しさん:2009/03/01(日) 11:07:13
本読め、本読めと2ちゃんねるに書き込んで、今日も本を読まずに1日終える

こんな生活が早3年

いつになったら俺はソフトを作れるのだろう

そうだ、本を読んで、技術に興味を持てばできるはずだ

2ちゃんねるのみんなにもこのことを伝えてやろう

(上へ戻る)
495デフォルトの名無しさん:2009/03/01(日) 11:14:32
お前ら本読んで、技術に興味持てよ。

俺は本が好きだから毎日本読もうと思ってるから、明日から読むよ。

技術も大事だから、プログラミングは明後日からだ。

じゃあ、明日に備えて今日は寝るか。

(上へ戻る)
496デフォルトの名無しさん:2009/03/01(日) 11:17:06
とりあえず2chブラウザとGUIのブラウザをアンインストールすることから始めないとな
497デフォルトの名無しさん:2009/03/02(月) 00:23:19
なんだ、2ちゃんねるに書き込む人は本を読まない人なのか?
一服の清涼剤にここで毒を吐くくらいいいじゃないか
もちろんほかの時間は本読んでるよ

今日読んだ本はExceptional C++の項目16〜24まで

え?それしか読んでないの?
はっはっは・・・最近疲れが溜まってて
498デフォルトの名無しさん:2009/03/02(月) 01:46:41
>平気でシングルトンパターン使って自慢げな顔してたりとか。

いろいろオレに当てはまってる気がするんだが、シングルトンパターンが非常に危険で使いどころが
難しいというなら具体的に指摘してもらえるとありがたいが、こんなスレじゃ無理かw

ゲームみたいな組み込み系に近い開発なら普通に有用だと思うんだが。

Cでコード内にstaticで保持したワークで処理を書いたほうがより無難といいたいんだろうか。
初期化コードや終了コードの呼び出しの手間だけでもシングルトンのがマシだと思うけど。
499デフォルトの名無しさん:2009/03/02(月) 01:58:15
シングルトンが正しく動くかどうかはメモリモデルに強く依存すること
シングルトンクラスが複数あると大抵ろくなことにならないということ
マルチスレッドとシングルトンの相性は最悪だということ

この辺をちゃんと理解してるなら使ってもいいと思うよ
500デフォルトの名無しさん:2009/03/02(月) 01:59:50
シングルトンは羊の皮をかぶったグローバル変数だってサッターが書いてた。
501デフォルトの名無しさん:2009/03/02(月) 02:01:05
あ、ちなみに僕はシングルトンパターンよくわからんです。今勉強中ですが。
502デフォルトの名無しさん:2009/03/02(月) 02:22:12
>>498
とりあえずお前はゲーム業界には来ないでね
503デフォルトの名無しさん:2009/03/02(月) 02:31:15
ゲーム業界に居ない奴が、来ないでね、という不思議。
504デフォルトの名無しさん:2009/03/02(月) 03:11:00
シングルトンについての個人的な意見だが、
クラスをまたいで同一のシングルトンを操作すると、クラスが癒着してしまって切り出せない構造になってしまう。
それがOOなのかはよく知らない。

継承するくらいなら、委譲したほうがいいし。
クラスの設定とかをするなら小さくまとめて、コンストラクタや初期化メソッドあたりで設定してしまうのがいいと思ってる。
用途が同じでもグローバル変数はもちろん使わないがメンバ変数は大いに使う。ポータビリティの違いがそこにある。
505デフォルトの名無しさん:2009/03/02(月) 03:23:52
まぁGitはグローバル変数使ってるんですけどね
506デフォルトの名無しさん:2009/03/02(月) 03:30:22
グローバル変数はヒープとは違います。
507デフォルトの名無しさん:2009/03/02(月) 04:05:27
>>499
シングルトンでスレッド制御してるし、シングルトンによるハードウェアリソースの管理で10個以上存在してるし
キミのいってることは具体的な例がないとオレには理解できないみたいだ。

>>500
オブジェクトが開放されるとせいぜいポインタ分しかメモリ使わないけど?

>>502
10年遅い。

>>504
単一機能の処理をシングルトンで実装してるわけだから、継承とか関係なくね?
まさかすべてのクラスがシングルトンかそうじゃないかって話してんの?

何人いるのか判らんがレベル低いね。
508デフォルトの名無しさん:2009/03/02(月) 04:10:55
恥ずかしい奴
509デフォルトの名無しさん:2009/03/02(月) 09:35:10
>>504がこの流れで
「継承するくらいなら、委譲したほうがいいし。」
と言って見せたのは、誤解を受けそうではあるものの、
なにか、静かに同意できる。

継承よりも委譲がなぜいいか、が、
シングルとンがなぜまずいか、とちょっと似てると思う。

可能な限り癒着せずに、
プリンッとした明白な状態をたもっていたい。
510デフォルトの名無しさん:2009/03/02(月) 10:15:08
というか、誰もシングルトンを継承するって言ってないと思うんだが
511デフォルトの名無しさん:2009/03/02(月) 23:18:50
>>507
スレッド間にも各ハードウェアリソース間にも初期化・解体の順序性が一切なく完全に独立してるならいいと思うけど
相当特殊な環境じゃないとそんなことなさそう

もしその10個に順序性があって、使いこなしてるなら本当に凄いと思う
安全性を保つためにどんだけカオスなコードが必要になるか想像も付かない
俺のような凡人は2つでもお断りする
512デフォルトの名無しさん:2009/03/03(火) 00:34:06
字面を眺めただけで本を読んだ気になってる奴。
処理内容をほっといてシングルトンだけで云々。
単なる道具であるC++程度も使えないウンコでさえ、
ウンコと言いたくなる気持ちは判るなぁ
513デフォルトの名無しさん:2009/03/03(火) 14:35:57
C++で機能が増えた分、設計の自由度は上がる。
その自由度を最大限使った設計をすることが
良いことかどうかはまた別の話。
514デフォルトの名無しさん:2009/03/03(火) 19:48:08
だからこそ、保守性の高いCが使われるってことで
515デフォルトの名無しさん:2009/03/03(火) 19:53:07
良くも悪くも枯れてるから。
516デフォルトの名無しさん:2009/03/04(水) 00:13:01
Windows OSとしてはCはサポートしてないよね
Windows自体は主にCで書かれてるけど
517デフォルトの名無しさん:2009/03/04(水) 00:21:21
闘うプログラマーには最初のWindows NTはC++で開発したって書いてあったけど
今のWindowsは違うのかな?
518デフォルトの名無しさん:2009/03/04(水) 00:31:09
何故違うと思ったの?
519デフォルトの名無しさん:2009/03/04(水) 09:24:09
以前はboostに入ってるいくつかの美しくないライブラリを平気で使っていたけど
ここまでして他の言語真似するなら、他の言語でよくね?
と思ったので今では仕事以外でC++使う機会は0

まぁ、0xの標準ライブラリに組み込まれるものがあんなに醜いのだから
C++プログラマーはウンコなんて言われても仕方ない…
520デフォルトの名無しさん:2009/03/04(水) 12:13:51
>>519
他の言語のまねの部分なんて、boostのほんの一部。
適当にググって話作ったでしょ?
521デフォルトの名無しさん:2009/03/04(水) 13:07:53
operaror&がshared_ptrを戻すようにすれば少しは美しくなるのにな。
522デフォルトの名無しさん:2009/03/04(水) 13:24:14
>>520
話をすりかえるなよ…
真似てない部分も醜い

というか、真似じゃない部分に関しては
他の言語では不要なものばかりなんだよな
言語機能の不足をテンプレートライブラリでカバーするアプローチそのものが醜い
523デフォルトの名無しさん:2009/03/04(水) 13:37:05
>>522
他の言語で不要なんじゃなくて、自分の使ってる範囲で不要なんでしょうに。

言語とライブラリの関係については、C言語の時以来の伝統。
このスレで言っても始まらん。
524デフォルトの名無しさん:2009/03/04(水) 14:08:08
多倍長整数と正規表現リテラルとスマートポインターを第一級オブジェクトにして欲しいな。

構文がだらだら長くて汚すぎ。
525デフォルトの名無しさん:2009/03/04(水) 14:32:22
>>519
>>522
だから?
それが、なに?
526デフォルトの名無しさん:2009/03/04(水) 14:33:42
>>522
じゃあ、お前は使うな!まぁ、言われなくても使ってないだろうけど。

はい、終了
527デフォルトの名無しさん:2009/03/04(水) 14:36:54
>>524
こうか?

int main() {
regex^ pat = /hello/;
cout << "hello, world".gsub(pat, "hell") << endl;
return 0;
}
528デフォルトの名無しさん:2009/03/04(水) 15:41:30
C++は多言語の真似ばかりでしかもウンコ汚ね。
529デフォルトの名無しさん:2009/03/04(水) 16:07:01
Linusさんって、あんな誠実そうなお顔をして、かなり口が悪いんだなあww
さすがの2ちゃんねらーも顔負けって感じww
530デフォルトの名無しさん:2009/03/04(水) 16:21:23
Linusに限らず、技術者は大体口が悪い。
Effective C++ 読むと嫌味満載だし
デスマーチとかグチばかり。
531デフォルトの名無しさん:2009/03/04(水) 17:03:16
Linusの場合は意図的にやってるような気もするけど。

「SUCKER(しっかりとパッチレビューができて、
強い意志を持った融通の利かない嫌なヤツ)を
演じられる人でないと、この作業(コードのメンテ)は
できない」
linus

ttp://www.atmarkit.co.jp/flinux/rensai/watch2005/watch04a.html

532デフォルトの名無しさん:2009/03/04(水) 17:04:30
C++での糞案件にひっかかったら性格歪んで当然だな
533デフォルトの名無しさん:2009/03/04(水) 17:16:51
Linusさんはそんなに視野狭くないと思うよ。
534デフォルトの名無しさん:2009/03/04(水) 17:30:23
ここのアンチC++はLinusに釣られすぎ。
Unix互換OS作ってるんだから、OSの機能は当然C互換にならざるを得ないし、
C++で作ってもオモテに出すAPIはextern "C"した関数になるしで、
内部で完結する要素にしか++部分を生かせないんだからCでつくりゃいいわけよ。

こんなことすら想像できずに、C++にしないの?とか聞いてくる奴には説明しても無駄だから
糞はこっちくんな
とののしる方が手っ取り早い。

真剣にCとC++の優劣を論じるだけ無駄ってもんだよ。
535デフォルトの名無しさん:2009/03/04(水) 17:56:18
>>534
Linuxの話じゃないんだがw
1くらい読めよ
536デフォルトの名無しさん:2009/03/04(水) 18:18:47
やっちまったなあ
537デフォルトの名無しさん:2009/03/04(水) 21:30:46
リーナスは結構ツンデレだから・・
538デフォルトの名無しさん:2009/03/04(水) 22:51:36
Linus 「さんをつけろよデコスケ野郎!!!1」
539デフォルトの名無しさん:2009/03/04(水) 22:54:37
それをいうなら、Gitも、CLIじゃなくてGUIで、
といった途端に、C++やらObjective-Cやらになっちゃうんだけどね。
540デフォルトの名無しさん:2009/03/04(水) 22:59:20
スレの内容を総括すると、Linusが仰るように

やっぱり、C++はウンコ

っていうこと決定しました。
541デフォルトの名無しさん:2009/03/04(水) 23:01:55
>>539
window system に X 使うんだったら C++ も Objective-C も必要ない
542デフォルトの名無しさん:2009/03/04(水) 23:06:19
>>523
> 他の言語で不要なんじゃなくて、自分の使ってる範囲で不要なんでしょうに。
いやいや、スマートポインタやanyみたいに他の言語では不要なものが沢山あるだろうよ…
543デフォルトの名無しさん:2009/03/04(水) 23:07:11
>>541
言いたいことは分かるけど、
OS XやらWindowsやらで独自にGUIをつくろう、となるのは、
X用のgit-tclが使いにくいからでしょ。正直。
544デフォルトの名無しさん:2009/03/04(水) 23:16:36
>>542
スマートポインタは標準に取り込まれたからBoostがうんぬん、と言う話でもないし。
anyは他の言語では実現できないから用意されてないだけ。
545デフォルトの名無しさん:2009/03/05(木) 00:36:12
実現できないからではなく必要がないと言うべきだろ。

anyは普通の動的言語なら当然のこと。
JavaとかC#だってObjectで同じような目的を果たせる。

スマートポインタだって「他の言語」ではGCあるから要らないって言いたいだけでしょどうせ。

こういうのがライブラリになっているC++は、不要なら使わずに済み、
必要ならCよりはましに使えるというのが売りの1つのはず。
さっぱり売りになっていないという主張は認める。
546デフォルトの名無しさん:2009/03/05(木) 00:43:36
>>545
Objectに相当するのはanyじゃなくて「void *」。
anyは型安全性が入ってる。

スマートポインタは、ヒープの管理+所有権の管理。
共有したいならshare、所有権を明確にしたいならuniqe。
547デフォルトの名無しさん:2009/03/05(木) 00:49:02
>>546
Objectだって元と違う型へキャストすれば例外が飛ぶんだから、
anyのような一面も持ち合わせていると思うんだがな。
548デフォルトの名無しさん:2009/03/05(木) 00:56:17
>>547
あ、そっか。
じゃあ、「Object v = 1;」ができて、
「.close()」とか「.dispose()」とかが要るクラスでも安全に使えるようになったら
認めてあげる。
549デフォルトの名無しさん:2009/03/05(木) 01:04:40
そんなクソ言語になるわけないだろ。
550デフォルトの名無しさん:2009/03/05(木) 01:04:43
>>548
そんなもの必要がない場面だからC++が選ばれないんだよ。
いやまあ裏を返して、そういう必要性があればC++使われるのかと言えば、
そんなことないのはそのとおりなんだけど。
551デフォルトの名無しさん:2009/03/05(木) 01:11:19
C#でおk
552デフォルトの名無しさん:2009/03/05(木) 01:32:57
>>550
そうやって、車輪の再発明に勤しむのも結構。
車輪がすでにあることを否定しなければ。
553550:2009/03/05(木) 01:59:46
>>552
いやねえ。俺はC++使っているよ。そこが便利だと思ったから。
554デフォルトの名無しさん:2009/03/05(木) 13:50:57
>>553
ごめん。
てっきり、このスレに跋扈してる、C++をろくに知らずに
批判する人たちのナカーマだと思いこんでたよ。
555デフォルトの名無しさん:2009/03/05(木) 14:14:04
>>554
今更、謝っても許さん!
556デフォルトの名無しさん:2009/03/05(木) 19:17:35
C++を知ってるなら他人にはすすめんよ。
人生の貴重な時間の無駄だからな。
557デフォルトの名無しさん:2009/03/05(木) 20:20:48
アンタには勧めんよ。無駄だからな。
558デフォルトの名無しさん:2009/03/05(木) 23:49:47
モバイルに持っていくことを考慮してC++を選択してたのも今や昔…
559デフォルトの名無しさん:2009/03/06(金) 00:04:26
今のゲームは大抵C++だよ
560デフォルトの名無しさん:2009/03/06(金) 00:25:12
>>559
誰に言ってるの?
561デフォルトの名無しさん:2009/03/06(金) 00:47:39
C++のゲームプログラムなんてほとんどがプログラマーのオナニー。
562デフォルトの名無しさん:2009/03/06(金) 00:48:31
オナニーならぜひ見てみたい。
563デフォルトの名無しさん:2009/03/06(金) 01:00:27
上手く書かれたプログラムなら、他人が書いたソースを読む必要は無い。
でも、そういう場面は稀で、ソースを確認したい衝動に駆られる。
その時、イヤな思いをするのは、圧倒的に C で書かれたライブラリより
C++ の、それだ。
言語の優劣というより、思想がそうさせてるんだろうな。
564デフォルトの名無しさん:2009/03/06(金) 14:02:04
フローを追うのが困難なんだよな
重要な処理が散らばってることが多くて
Cに比べて当たりを付けにくい
565デフォルトの名無しさん:2009/03/06(金) 14:10:21
その理屈だと小さい関数に分けまくってるようなHaskellとかMLは最悪になるだろうな
566デフォルトの名無しさん:2009/03/06(金) 14:45:06
宣言と定義が別のファイルってマヌケとしか言いようがない。
567デフォルトの名無しさん:2009/03/06(金) 14:49:50
まず、何のために小さく分けようとしているのかを考えろ
何も考えずに小さい=正義というのが最悪なのは当然だ
568デフォルトの名無しさん:2009/03/06(金) 15:06:06
>>566
時代背景とCという歴史的経緯を考えれば仕方がない。
が、現代からすれば間抜けにしか思えないのは同意。

JavaくらいにIDEの支援が充実できていれば、
当然IDEが適当にヘッダを何とかしてくれるようになっているだろうと思うけど、
そんなの絶対無理だorz
569デフォルトの名無しさん:2009/03/06(金) 15:29:04
ヘッダなんてコンパイラが自動生成してくれるべき
570デフォルトの名無しさん:2009/03/06(金) 16:59:54
リーナス毒舌炸裂
571デフォルトの名無しさん:2009/03/06(金) 19:39:23
Javaも、フラットなパッケージシステムが古くさくなったから、
パッケージ記述を別ファイルに書くように変わるんじゃなかったっけ。
スーパーパッケージだったか。
572デフォルトの名無しさん:2009/03/06(金) 23:27:11
C/C++のコンセプトを否定してることにも気づかないほど低レベルなレス。
573デフォルトの名無しさん:2009/03/06(金) 23:29:27
コンセプトなんてますますテンプレートをカオスにするだけだろ
エラーメッセージの改善なんて信じない
574デフォルトの名無しさん:2009/03/06(金) 23:36:27
コンセプトはアサーションみたく
エラーメッセージの改善に役立ってくれると思うけど。
コンセプトマップが導入されたらどうなるか想像もつかない。
575デフォルトの名無しさん:2009/03/07(土) 01:20:13
まあ使いたくなかったら使わなければ良いんじゃね。
マクロよりまともな文法で冗長な記述が減らせるから
フローを追うのも慣れればCより楽だろ。
576デフォルトの名無しさん:2009/03/07(土) 08:44:15
>>573-574
言語学ぶ前にまず日本語読解力から身につけたほうがいいような...

それともこれが知らない言葉が出てくるたびに
ググレカスいわれつづけた2ch住人の末路ですか?
577デフォルトの名無しさん:2009/03/07(土) 09:47:00
>>576
日本語の前に空気読めるようになった方がいいよ。
C++の話をしてるときに、コンセプトっていったら何を意味するか
理解しない/思いつかない人にC++の講釈は受けたくない、ってこと。
578デフォルトの名無しさん:2009/03/07(土) 10:06:38
その言葉...
そっくりそのまま返せるのはこっちのほうなんだが…
579デフォルトの名無しさん:2009/03/07(土) 10:26:46
>>572
てゆうかC言語にコンセプト(機能の方)ってあんの?
580デフォルトの名無しさん:2009/03/07(土) 10:53:35
>>578
わりい。つい。邪魔してすまんかった。
581デフォルトの名無しさん:2009/03/07(土) 11:12:19
>>578
違うわボケw
と言えば終わりだったのにってことでしょ
582デフォルトの名無しさん:2009/03/07(土) 12:04:00
わろた。まさに低レベルw
583デフォルトの名無しさん:2009/03/07(土) 14:15:06
自分で書いたネタをいちいち釈明する痛いC++厨が住むスレ
584デフォルトの名無しさん:2009/03/07(土) 17:23:22
本当は関数型言語が最強なんだが
低脳じゃ使えんからな
だからな、低脳用にC/C++みたいな言語容易してるんだ
585デフォルトの名無しさん:2009/03/07(土) 18:50:04
関数型言語というだけあって抽象的だなあ。
586デフォルトの名無しさん:2009/03/07(土) 19:09:25
>>584
おまえは一生関数型言語使ってりゃいいよ
まわりが不幸にならずにすむ
587デフォルトの名無しさん:2009/03/07(土) 20:54:30
なんでC++なんかでプログラミングするの?

「それがぼくには楽しかったから」さw
588デフォルトの名無しさん:2009/03/07(土) 20:59:19
C++から例外とかを除けて、C++--を作ればいい
589デフォルトの名無しさん:2009/03/07(土) 21:26:23
>>588
そういえば、Googleでも例外とかRTTIとか使わせないんだよなあ。
ttp://www.henshi.net/k/hiki.cgi?GoogleCppStyleGuide
590デフォルトの名無しさん:2009/03/07(土) 21:34:16
RTTI が必要になること自体、普通は設計に問題があるかんね。
まあ、やむを得ない場合もなくはないが・・・。
591デフォルトの名無しさん:2009/03/07(土) 21:41:21
Google は例外を否定しているわけじゃないようだね。
例外安全でない過去の資源があるからしかたなくという感じだ。
592デフォルトの名無しさん:2009/03/07(土) 22:10:39
enumの変わりに構造体とRTTI使ってた俺は異端ということか……
593デフォルトの名無しさん:2009/03/07(土) 22:13:05
GoogleにもLinusさんみたいな人がいて、
Cから(安全に)呼び出せないコードは許さん!
とか言ってるんだろうか。
594デフォルトの名無しさん:2009/03/07(土) 22:16:06
>>594
Java 1.5のEnumと同じようなの作ろうとしたら構造体とRTTIになるんだろうね。
595594:2009/03/07(土) 22:17:31
アンカー間違えた。スマソ。
>>593
596594:2009/03/07(土) 22:19:35
真玉違えた。
>>592
ノシ俺
597デフォルトの名無しさん:2009/03/07(土) 22:55:16
関数型言語最強とか言ってる奴はプログラマーじゃないだろ。
もしくは人と接触しない変態。
598デフォルトの名無しさん:2009/03/07(土) 22:59:05
Windows全盛だから、Windows以外でプログラム書く奴って何なの?
って言っちゃうタイプだろうな。
良い悪いは別にして、広い視野を持つことはプログラマにとって
大事だと思う。
599デフォルトの名無しさん:2009/03/07(土) 23:15:03
>>597
そういうこと行っているおまえは
関数型言語使ったことあるのか
600594:2009/03/07(土) 23:34:01
>>597
MSも関数型言語には注目してるみたいだよ。
VC2010にF#が入るらしいし。
どこまで本気か知らないけど。
601デフォルトの名無しさん:2009/03/07(土) 23:44:18
.....それって、要望あるからVSサポート言語にするのか?
602デフォルトの名無しさん:2009/03/07(土) 23:44:48
C++もboostで関数型っぽい道を模索してるくらいだし、注目はされてるんだろう。
603デフォルトの名無しさん:2009/03/07(土) 23:59:38
Cにあったシンプルさがまったくなくなってるんだよな
まだEC++のほうがまし
604594:2009/03/08(日) 00:00:21
並列化しやすいんだって。
べたなOpenCL/DirectXのような並列化と、抽象度の高い関数型言語による並列化と、
どっちがはやるかなあ。
605デフォルトの名無しさん:2009/03/08(日) 00:02:45
並列化だけなら静的変数に制限すればいいような気がするんだが。
606デフォルトの名無しさん:2009/03/08(日) 00:03:38
でもよ、Cってクラスライブラリ使えないだろ
これが俺的には最大の欠点だな
Cはクラスライブラリを使わない分野にしか活路がないような気がする
607デフォルトの名無しさん:2009/03/08(日) 00:05:00
おまえが「クラスライブラリ」って単語使って何が言いたいのかさっぱりわからん。
608594:2009/03/08(日) 00:20:27
>>605
static?のことだったら意味分からん。おせーて。
constのことだったら、C#は将来デフォでconstになるかもよ。
609デフォルトの名無しさん:2009/03/08(日) 00:30:22
C#の話はしてませんから。
610594:2009/03/08(日) 00:39:16
そうかなあ。関数型言語の話が振られてるときに、
C言語に持っていくのは難易度高いぞ。
611デフォルトの名無しさん:2009/03/08(日) 01:11:07 BE:871718764-2BP(182)
■韓国からWBCの腹いせ食らってるぜwwwwwwww
*****************************************

WBCで日本相手にコールド負けを喫した韓国が
mamonoサーバーに攻撃開始
VIPPERはこれに対し反撃を行う

・開始時刻: 24:30
・手段:Apache砲/hping砲
・Apache砲弾:http://vipshota.if.land.to/NAVER.zip
・攻撃先:www.naver.com

WBCで韓国がファビョって2chに攻撃★2
http://takeshima.2ch.net/test/read.cgi/news4vip/1236440497/

*****************************************
612デフォルトの名無しさん:2009/03/08(日) 01:13:27
>>606
GTKはクラスライブラリだと思うけどな。
少なくともC++がオブジェクト指向言語というのと同程度には。
613デフォルトの名無しさん:2009/03/08(日) 01:13:52
コピペ君って馬鹿だな、まで読んだ。
614デフォルトの名無しさん:2009/03/08(日) 03:04:29
この際、有志で HSP を叩き台に HS++(hspp)を作ったほうがいいんじゃないかと思うんだよね。
HSP にオブジェクト指向をプラスして、低レベルな API を整備すれば
少なくとも C++ よりはマシな言語になりそう。
615デフォルトの名無しさん:2009/03/08(日) 03:38:02
無茶言うな
616デフォルトの名無しさん:2009/03/08(日) 04:38:42
ばかだろ
617デフォルトの名無しさん:2009/03/08(日) 05:32:16
Cの正当な後継者はJavascriptだと思うよ。
618デフォルトの名無しさん:2009/03/08(日) 06:23:17
いや、やっぱD言語だろ
619デフォルトの名無しさん:2009/03/08(日) 09:44:46
Cで満足されてるし後継は無しで
620デフォルトの名無しさん:2009/03/08(日) 10:37:12
haskell使ってても結局パフォーマンスが必要なところはCだからな
ここぞとばかりにunsafePerformIOが使える楽しいところでもある
621デフォルトの名無しさん:2009/03/08(日) 11:05:55
2つの言語が混在したコードをメンテするのは
それなりに面倒だけどなあ。
622デフォルトの名無しさん:2009/03/08(日) 11:23:14
その理屈だと扱う言語が2種どころじゃないwebアプリ(笑)なんて地獄だな
623デフォルトの名無しさん:2009/03/08(日) 11:33:32
configureとMakefileの悪口は・・・もっと評価されていい
624デフォルトの名無しさん:2009/03/08(日) 11:48:14
>>622
HTMLはさすがに(プログラミング)言語にはカウントしたくないけど。
625デフォルトの名無しさん:2009/03/08(日) 11:55:00
MacもObjective-C使うから地獄だな
626デフォルトの名無しさん:2009/03/08(日) 11:55:43
Objective-Cかっこいいじゃん。
627デフォルトの名無しさん:2009/03/08(日) 13:40:44
webアプリ屋さんは大変だよなあ
2種類どころか1ダースって感じだし
628デフォルトの名無しさん:2009/03/08(日) 14:17:35
最低限でもHTML,JS,Perl,PHP,Python,Java,SQLくらいは必要なのかな?
大変だなぁ
629デフォルトの名無しさん:2009/03/08(日) 14:47:43
>>628
Perl, Python, Java は全然最低要件じゃないだろw
開発体制とか顧客との関係にもよるけど
C, PHP, JS, HTML(の正確な知識), SQL, AS ぐらいかな。
俺は速度を求める部分は C, 他は PHP。
業務上、用途の被る言語を無駄に覚えなければならないとしたら
開発体制・営業戦略に欠陥があるだけ。
勿論、できないよりはできるにこしたことはないけど。
630デフォルトの名無しさん:2009/03/08(日) 14:49:33
実際、速度を求めてCで書くのって、どんなのがある?
631デフォルトの名無しさん:2009/03/08(日) 14:58:13
各種スクリプト言語のFFIを利用するとき
632デフォルトの名無しさん:2009/03/08(日) 15:39:06
「自分の使う言語はこれ。それ以外はシラネ(うんこ)」
ですね。勉強になりました
633デフォルトの名無しさん:2009/03/08(日) 16:25:55
「何も考えず言語をあれこれ。ノウハウの蓄積なんかシラネ」
ですね。毎日デスマご苦労様です
634デフォルトの名無しさん:2009/03/08(日) 19:00:17
90年代の前半からカーネルをC++で書き直すべき
みたいなうざいやつがMLにたびたび沸いてたからなあ
635デフォルトの名無しさん:2009/03/08(日) 19:02:51
web屋は技術の入れ替わりが激しくて技術が蓄積しづらい印象がある
プログラム技術全体に言えることだけど
636デフォルトの名無しさん:2009/03/08(日) 19:05:57
この世にはC+-って言語があるのか?
今日部屋を掃除してたら以前ハロワでコピーした求人票が出てきて、
仕事の内容の欄をよく見てたら C+- って書いてあるのがあったんだが・・・
637デフォルトの名無しさん:2009/03/08(日) 20:34:50
それ C
638デフォルトの名無しさん:2009/03/08(日) 20:40:59
C++プログラマ「Linusはウンコ。寄ってくるな」
639デフォルトの名無しさん:2009/03/08(日) 20:47:02
俺の認識では
「C++ 使えます」 ≒ 「MFCでプログラム組んだことがあります」
実は, C++ 使えない奴の方が圧倒的に多い
640デフォルトの名無しさん:2009/03/08(日) 20:51:57
俺の認識では
「C++ 使えます」 ≒ 「Qtでプログラム組んだことがあります」
641デフォルトの名無しさん:2009/03/08(日) 20:56:07
C++使えるって奴でも、MFCのコードを見て
「こんなんできねー」って絶望する人は多い。
642デフォルトの名無しさん:2009/03/08(日) 20:59:39
>>641
俺も思うよ。
「何でこんなアホなモデリングしてるんだ?」
って
643デフォルトの名無しさん:2009/03/08(日) 21:03:10
というか、今C++使う意義なんて高機能の割に
互換性が高い、ぐらいしかないから。
というかboostとかも含めその方針だし。
中途半端にMFC使うぐらいならC#でいいしなあ。
C++使っててQt, wx当りのクロプラTK使ってるならまだわかるけど
MFCとかは確かに「寄ってくんな」って感じだな。
644デフォルトの名無しさん:2009/03/08(日) 21:14:07
馬鹿しかいないな
645デフォルトの名無しさん:2009/03/08(日) 21:40:29
生半可な知識しかもってない人ほど断定口調なのはなぜ?
646デフォルトの名無しさん:2009/03/08(日) 21:47:10
自称生半可じゃない知識をもってる人がそういう奴を論破できないほどヘタレだから
647デフォルトの名無しさん:2009/03/08(日) 22:54:55
なるほど。論理的思考ができないからか。参考になった。ありがと
648デフォルトの名無しさん:2009/03/08(日) 23:15:40
煽りにマジレスみっともない
649デフォルトの名無しさん:2009/03/08(日) 23:54:26
いや、いつも「できます」って言ってくる営業の人思い出したんだよ。マジで
650デフォルトの名無しさん:2009/03/09(月) 00:27:02
いや、いつも「ちゃんとしたのできます」って言ってくるPG思い出したんだよ。マジで
651デフォルトの名無しさん:2009/03/09(月) 00:42:06
ワーキングプアww
652デフォルトの名無しさん:2009/03/09(月) 07:46:16
ということは馬鹿な俺はとりあえずシープラプラでおkということか
653デフォルトの名無しさん:2009/03/09(月) 08:31:56
イマドキC++って・・・(笑)
やっぱCocoaでしょフツー
654デフォルトの名無しさん:2009/03/09(月) 09:32:51
釣りにしても酷いな
655デフォルトの名無しさん:2009/03/09(月) 09:56:47
やっと>>1のおっさんにふさわしいスレになってきた。
656デフォルトの名無しさん:2009/03/09(月) 21:29:49
Linusが言いたかったのは
Linus「Cプログラマ以外はウンコ。寄ってくるな」
だろう。
657デフォルトの名無しさん:2009/03/09(月) 21:32:40
なんでC++でやらないんですか?C++の方が簡単に出来るのに何でしないの?
と聞かれるのがうざかったんだとおもうなー
658デフォルトの名無しさん:2009/03/09(月) 21:54:13
C++の方が簡単ってのはないだろう
というか、あえて複雑にする傾向にあるよな、C++好きの人。

関数1行で済むことにも、まずクラス作ろうぜ、だって再利用することが
あるかもしれないから、とか言って、骨組みだけの内容の無いコードを書くよね
659デフォルトの名無しさん:2009/03/09(月) 22:02:28
関数1行で済むことにも、まずクラス作ろうぜ
ぽかーーーん
660デフォルトの名無しさん:2009/03/09(月) 22:07:03
>>658
まったく的確な指摘なんだが本人に自覚ないから気づくこともない
661デフォルトの名無しさん:2009/03/09(月) 22:07:56
再利用可能性そのものは重要だと思うけどね
662デフォルトの名無しさん:2009/03/09(月) 22:11:40
2chでいうと、スレが続くと思って Part 1スレを立てちゃうみたいなもんだな
663デフォルトの名無しさん:2009/03/09(月) 22:14:01
>>634
C#やObjective-CみたいにOSの後ろ盾が欲しいんだろうな
664デフォルトの名無しさん:2009/03/09(月) 22:19:26
>>661
XP知ってる?
665デフォルトの名無しさん:2009/03/09(月) 22:59:49
それは必要にならないって奴?

ところで、グローバル関数はグローバルな名前空間を汚染するので
C++ではクラスを使ったり、無名の名前空間の中に押し込んだりするのが一般的・・・だそうな。
666デフォルトの名無しさん:2009/03/09(月) 23:06:51
原理主義者のやることは、どの言語のそれでも似たようなもんですわ
どうやれば、そんなに頭が凝り固まるのか感服することさえある
667デフォルトの名無しさん:2009/03/09(月) 23:21:12
それはスコープを限定することに神経質にならないと、ADLがらみで酷い事になるから
この部分にかけてはもう欠陥といってもいい程わけわからんことになってる
668デフォルトの名無しさん:2009/03/10(火) 10:41:21
今度から part 2 から始めるよ。
669停止しました。。。:2009/03/10(火) 17:39:18
真・スレッドリスターター。。。( ̄ー ̄)ニヤリッ

http://pc11.2ch.net/test/read.cgi/tech/1235803518/
670デフォルトの名無しさん:2009/03/10(火) 19:50:35
テスト
671デフォルトの名無しさん:2009/03/10(火) 23:20:27
Visual Studioで組んでると、ネームスペースで細かく分けるのに意味がある
インテリセンスは便利だ...

可愛いよthis、可愛いよthis...
672デフォルトの名無しさん:2009/03/11(水) 12:06:56
673デフォルトの名無しさん:2009/03/14(土) 01:26:59
でかいクラスを作らず小さいクラスをたくさん作るのはなんで?
ごめんねウンコプログラマでCでハード系組んだこともなくてごめんね
674デフォルトの名無しさん:2009/03/14(土) 01:33:12
>>673
部屋の整理術みたいなもん
大きな箱に物を詰め込むと大概ちらかる
675デフォルトの名無しさん:2009/03/14(土) 08:47:50
>>673
多くの場合、小さいほうがシンプル
命名するのがマンドクセーのが唯一欠点
676デフォルトの名無しさん:2009/03/14(土) 10:41:21
677デフォルトの名無しさん:2009/03/14(土) 12:22:36
Cで大きな関数を作らずに小さい関数を沢山作るのと同じようなもの
678デフォルトの名無しさん:2009/03/14(土) 23:21:28
その作ったたくさんの小さなクラスをまとめるのに構造体を作って
結局でかいデータ構造体ができてるおれ
679デフォルトの名無しさん:2009/03/15(日) 07:29:34
http://blog.hacklife.net/archives/51094435.html

大クラス主義、小クラス主義って議論はあるな。
680デフォルトの名無しさん:2009/03/15(日) 09:05:03
まず小クラスで細かく色々作って、実際使ってくうちに
組み合わせて大クラスへと変貌してく。
681デフォルトの名無しさん:2009/03/15(日) 09:38:29
Cで関数が大きいとかで悩むことってほとんどないよね
オブジェクト指向が変なテーマを持ち込んだもんだ
682デフォルトの名無しさん:2009/03/15(日) 10:19:03
基本

関数は画面1ページに収まるようにしましょう。
683デフォルトの名無しさん:2009/03/15(日) 11:04:30
>>682
GNUにあがってるソースを見ると、守ってない人多いよね。
684デフォルトの名無しさん:2009/03/15(日) 11:18:54
守るもなにも一ページうんぬんって、まあ、宗教だからな。
そういう宗教人じゃないと関係ない。
685デフォルトの名無しさん:2009/03/15(日) 11:28:17
最悪の場合、複雑に絡み合ったままの状態で形だけ分割して別々のファイルに書く。

要は、分割するとか1ページに収めるとかいう漠然とした言葉では
正確な意味が伝わらない罠。
686デフォルトの名無しさん:2009/03/15(日) 11:42:10
>>681
あるよ・・・
687デフォルトの名無しさん:2009/03/15(日) 11:50:32
Code Completeで、ルーチンの行数とエラーとの関係の調査結果が
いくつか載ってるけど、200行以下の場合は行数が少ないほど、一行
あたりのエラーが増える(100行のルーチン一つと10行のルーチン10個
では、10行のルーチン10個のほうがバグが多い)とか、ルーチン行数と
エラーに因果関係はなくて、構造的な複雑さやデータの多さに関係
してるとかって「関数は小さいほうがいい」みたいな説に反する調査
結果ばかりだな。

行数じゃなくて、複雑さに着目しようって結論 > Code Complete

まあ、行数が多い関数は複雑さも増してることが多いだろうから、
すごい初心者には行数でアドバイスするのは有効かもしれんけど、
教条主義的に行数制限すると、かえって素直なコードじゃなくなるよな。
688デフォルトの名無しさん:2009/03/15(日) 11:55:31
200行の読みやすい関数と、40行の関数が5個の読みにくい関数だとどっちがいいんだ?
689デフォルトの名無しさん:2009/03/15(日) 11:57:33
全く別物を比べても意味がないだろう
690デフォルトの名無しさん:2009/03/15(日) 12:15:43
>>685
それを言ったら、コーディング規則なんて全部宗教だろ。
信じて救われる人間がいるから、多くがそれに従う。
691デフォルトの名無しさん:2009/03/15(日) 12:22:38
極論ですね分かります
692デフォルトの名無しさん:2009/03/15(日) 12:24:13
極論?
693デフォルトの名無しさん:2009/03/15(日) 12:24:21
>>683
画面1ページって何行かしらないけど、全関数が30行とか50行以内に収まってる
のって、GNUだけじゃなくて、まともなプロダクツじゃ皆無だろ。
694デフォルトの名無しさん:2009/03/15(日) 12:28:22
haskellだと30行でも長すぎって感じるようになるよ
695デフォルトの名無しさん:2009/03/15(日) 12:28:38
BASICで一画面プログラムとか懐かしいのぅ。
しかも、MSXの40x24でマトモに動いたんだから凄いね。
696デフォルトの名無しさん:2009/03/15(日) 13:38:47
1画面に納めるためになるべく改行を減らしたりとかあったなぁ。
見難かった
697デフォルトの名無しさん:2009/03/15(日) 13:41:06
>>690
なかなかの名言だと思う
698デフォルトの名無しさん:2009/03/15(日) 14:06:37
どんな有用なルールでも無知な人には理解できないから、
ちんぷんかんぷんで宗教のように見えるってことだろうな

まあ無知な当人には理解できないんだろうけど
699デフォルトの名無しさん:2009/03/15(日) 14:09:56
>>689が宗教を理解できていないことはわかった。
700デフォルトの名無しさん:2009/03/15(日) 14:29:29
>>699
40行の関数が5個の読みやすい関数が一番だろ
701デフォルトの名無しさん:2009/03/15(日) 14:58:50
> 200行の読みやすい関数と、40行の関数が5個の読みにくい関数だとどっちがいいんだ?

ちょっと別の話だけど、
200行の関数を五個に分けたとき、
トータルはきっと200行以下になるよね?
共通部分を抜き出して再利用するってそういうことだよね?

つまり、分けていくって作業は、
トータル量を圧縮していく作業でもあり、
全体の複雑さを減らす作業でもあると思うんだ。

宗教以上の効果があるんじゃね?
702デフォルトの名無しさん:2009/03/15(日) 15:03:34
いんや
処理に名前をつけるという意味もあるから増えることもあるよ
703デフォルトの名無しさん:2009/03/15(日) 15:04:35
というか、関数自体がオブ指向ダヨネ。
素のコードを引数以外隠蔽して概念化するためにあるんだから。
ここらへんに気付けてるのってもしかして俺だけ?
704デフォルトの名無しさん:2009/03/15(日) 15:05:17
ホーア論理の考えでassert入れてけば200行の関数が大抵数個の組に分けられるから
それを参考に小さい関数に分割できる
こうやって分けるメリットの一つは自動化された単体テストができるようになること
これは大きい…
705デフォルトの名無しさん:2009/03/15(日) 15:15:46
ニンジンを切るように三つに魚を切り分けるのと、
再利用性を考えて三枚に下ろすのとでは違うよね。

でも、長いタスクをあいまいにニンジン切り分けするときってあるよね。
706705:2009/03/15(日) 15:17:00
いや、俺は何を言っているんだ。
707デフォルトの名無しさん:2009/03/15(日) 15:38:49
ニンジンと魚の三枚下ろしでなにができるかな!!
708デフォルトの名無しさん:2009/03/15(日) 16:20:07
コーディング規約は何がより望ましくて何がそうでないかの境界がはっきりしないことが
確かに多いけれど、だからといってそれを宗教だというのは
役にたつ規約とそうでないものは判断の境界が曖昧だからどちらも役に立たない
という滅茶苦茶な論になっているのに気がつかないのか?
ナイーブすぎ
709デフォルトの名無しさん:2009/03/15(日) 18:04:54
関数の行数制限とか、比較のときに定数を左に置くとか、ああいうのは宗教だよな。
710デフォルトの名無しさん:2009/03/15(日) 18:16:29
>>708
たとえば2chは基本的には役に立たない情報源なわけで
「役に立たないが一応コーディング規約がある」
ってスタンスは悪くないと思う
711デフォルトの名無しさん:2009/03/15(日) 18:16:34
その土地のしきたりだから良いんじゃね
712デフォルトの名無しさん:2009/03/15(日) 18:28:32
「宗教」という言葉に過剰反応している奴がいるようだが、
世の中では「コーディング規則」なんかより遥かに社会的に尊重されている行動規範が「宗教」

「コーディング規則が宗教」というのは、プログラマが従うべき行動規範としてのコーディング規則にとって何らネガティブな意味は無い。
713デフォルトの名無しさん:2009/03/15(日) 18:36:38
宗教は神のような上位的存在に縛られないと
マナーを守る事もできないような原始的な人達のためのものだな。
714デフォルトの名無しさん:2009/03/15(日) 18:40:15
社会での宗教の重要性は、他人の宗教観を尊重できない土人には理解できないだろう。
715デフォルトの名無しさん:2009/03/15(日) 18:44:53
日本ではプログラマのような下民に宗教は必要ないよ
716デフォルトの名無しさん:2009/03/15(日) 18:47:20
ソフトウェア開発においてプログラマーより偉いやつっているの?
717デフォルトの名無しさん:2009/03/15(日) 18:49:12
いるわけないだろ。
バグ仕込むのも、デスマ引き起こすのも、全部プログラマー様のお陰だからな。
718デフォルトの名無しさん:2009/03/15(日) 18:52:49
モノつくれないけど卑怯に立ち回れる奴が勝ち組なんだよね。
719デフォルトの名無しさん:2009/03/15(日) 18:55:41
比較の時に定数を左にって、段取りが明確なコードなら
比較対象の変数は自明なことが多いからそのほうが可読性が高い(意図を読みやすい)、
ってことだと思ってずっとそうしてた。
コンパイラに関係してるとは思わんかったな。今も反省はしていないが。
720デフォルトの名無しさん:2009/03/15(日) 18:59:42
枝葉末節
721デフォルトの名無しさん:2009/03/15(日) 19:01:41
宗教の中に合理性を見出す者は
哲学を作り、キリスト教を作り、ローマを作り。

名言スマソ。
722デフォルトの名無しさん:2009/03/15(日) 19:53:47
>>716
いや、むしろ、開発でプログラマーより下のやつを知らないんだが。
723デフォルトの名無しさん:2009/03/15(日) 20:06:48
FT専門のテスターが最下位じゃないかな。
724デフォルトの名無しさん:2009/03/15(日) 20:12:11
>>718
卑怯な奴をねじ伏せるのが快感
725デフォルトの名無しさん:2009/03/15(日) 20:26:20
一画面とかそんなこと意識して関数の大きさ決めてんの?
ちょっと引いた
それならワイドモニターを縦にして作業してればいいじゃん
726デフォルトの名無しさん:2009/03/15(日) 20:32:08
>>725
わろた。
ほんとは自分低脳を隠すための言い訳
727デフォルトの名無しさん:2009/03/15(日) 21:05:08
シグナルの一つとしては考えてる
728デフォルトの名無しさん:2009/03/15(日) 21:46:22
関数を畳めるエディタ使えば別にどれだけ長くても問題ないだろ。
729デフォルトの名無しさん:2009/03/15(日) 21:54:55
確かにその通りだな。

関数はmain()一つで機能は中でswitchで切り替えればいいね。
730デフォルトの名無しさん:2009/03/15(日) 22:14:30
一画面以内って話のは、PCの画面が20行とか25行が主流の時代から
あって、当時そう主張してた人たちはマジでそれを守ってかいてたのか
すごい疑問。今考えると。

>>725
当時も、印刷したら一枚60行だから、60行までセーフとかって説があった。
731デフォルトの名無しさん:2009/03/15(日) 22:16:45
一画面に入れるために改行ケチったりして
醜くなるなら逆効果だな。
一画面プログラムみたいなのはネタだけでいい。
732デフォルトの名無しさん:2009/03/15(日) 22:18:28
一画面プログラムなんて話誰もしてないだろ
733デフォルトの名無しさん:2009/03/15(日) 22:32:40
>>732は日常ではしょっちゅう空気読めって怒られるタイプ
734デフォルトの名無しさん:2009/03/15(日) 22:57:08
自分は行数あまり長くならないんだけど
みんな何作ってるの?
735デフォルトの名無しさん:2009/03/15(日) 22:58:25
普通は限界50行前後までと意識して、
どんだけ長くても100行以内にする
普通は30行以内で書く
736デフォルトの名無しさん:2009/03/15(日) 23:02:54
>>734
CでWebアプリ
737デフォルトの名無しさん:2009/03/15(日) 23:04:03
>>734
Cでロボット
大体1万行ぐらい。
738デフォルトの名無しさん:2009/03/15(日) 23:06:21
>>734
CでOS
739デフォルトの名無しさん:2009/03/15(日) 23:08:30
Linusのgitのソースを見てみたら50行以上の関数はふつーにあった。
740デフォルトの名無しさん:2009/03/15(日) 23:13:07
関数呼び出しコストもバカにならんよ!
スタック消費量が減らない場合は関数なんて無駄に作るべきじゃない
741デフォルトの名無しさん:2009/03/15(日) 23:16:16
関数呼び出しコストを気にして関数作らない奴に限って
ソースの見通しが悪くて開発効率が悪く
トータルでパフォーマンスや性能改善速度を落とす法則
742デフォルトの名無しさん:2009/03/15(日) 23:17:48
コンパイラの最適化も大きな関数ほどよく効く
743デフォルトの名無しさん:2009/03/15(日) 23:22:20
この問題は大きな政府か、小さな政府か、という問題に似ているな。
大きな関数ならばコードは安定するが、コードの流動性は低下する。
小さな関数ならばコード間に市場競争が生まれ、
新しいパターンを素早く構成することが出来る。
744デフォルトの名無しさん:2009/03/15(日) 23:25:52
別に関数を大きくしても安定はしないだろ。
745デフォルトの名無しさん:2009/03/15(日) 23:31:58
インライン関数たんの存在が忘れられてるな。
インラインならコンパイラの最適化オプション次第で
展開するかどうか微調整できるだろ。

…マ、マサカこんなところでC++の追い風になるとは…予想外の展開
746デフォルトの名無しさん:2009/03/15(日) 23:34:51
関数呼び出しのコストが気になるなんてどんなスケールの開発だか想像できない。
747デフォルトの名無しさん:2009/03/15(日) 23:53:24
>>745
もうこのスレでインラインなんて用語使わないでくれ
748デフォルトの名無しさん:2009/03/15(日) 23:53:40
頻繁に呼ばれる関数が性能のボトルネックのひとつになるなんて
よく事あるじゃん
749デフォルトの名無しさん:2009/03/16(月) 00:00:16
頻繁に呼ばれる関数の「呼び出し」がコストに影響するなんてそうそうないんだけど。
staticつければ最適化がかからないコンパイラほとんどないし。
定量的なパフォーマンス計測してるの?
750デフォルトの名無しさん:2009/03/16(月) 00:01:21
インライン展開は結構馬鹿にならない速度アップすることあるからな。
751デフォルトの名無しさん:2009/03/16(月) 00:06:36
関数呼び出しがそれなりにコストのかかるものだってのは
それこそ定量的に計測してりゃわかると思うんだがね
752デフォルトの名無しさん:2009/03/16(月) 00:07:11
で何パーセント影響があってあんたのシステムでどの程度の時間を食ってるわけ?
753デフォルトの名無しさん:2009/03/16(月) 00:07:13
だからこそ、インラインがC・C++で用意されてるんだよな
754デフォルトの名無しさん:2009/03/16(月) 00:09:17
>>753
でも、今となってはインラインの速度面での効果なんてregister程度だろうと思う。
自分がinlineを使う基準は「ヘッダに書きたいか」としている。
755デフォルトの名無しさん:2009/03/16(月) 00:12:12
上の方で宗教が如何こう言ってるやつが居るが...

何時の時代も、宗教があるから争いが起こるんだぜ
756デフォルトの名無しさん:2009/03/16(月) 00:12:12
最適化の知識やコンパイル後のコードの知識が足りないだけだろ。
757デフォルトの名無しさん:2009/03/16(月) 00:13:50
>>752
世の中、高速CPUで動いているプログラムだけじゃないよ
コストを抑えるため低性能マイコンを使って無理してパフォーマンス
出さなければいけない場合なんかでは必須
世の中お金持ちばかりとは限らん
758デフォルトの名無しさん:2009/03/16(月) 00:14:19
ヘッダはプロトタイプ宣言とかクラス宣言だけにしろよ
759デフォルトの名無しさん:2009/03/16(月) 00:16:02
>>757
>>752に答えてよ。大体の数字で構わないから。
いまどきそこまで性能の低いCPUを使ってる環境も少ないぜ。
ARM以下の仕事なら俺にはわからんが。
760デフォルトの名無しさん:2009/03/16(月) 00:16:25
>>758
そうしたいのは山々だが、テンプレートを使う場合は無理
761デフォルトの名無しさん:2009/03/16(月) 00:16:46
使わなければいいと思う。
762デフォルトの名無しさん:2009/03/16(月) 00:21:39
>>759
おまえPGじゃないだろ
世の中8bit・16bitマイコンいっぱい使われてるの知らんのか
763デフォルトの名無しさん:2009/03/16(月) 00:22:13
>>762
そのサイズならアセンブラ併用だろ。
関数コールとかの問題じゃない。
764デフォルトの名無しさん:2009/03/16(月) 00:24:01
いまどきの8bit/16bitってメモリ空間広いの?
Cでコード書くくらいに
765デフォルトの名無しさん:2009/03/16(月) 00:25:44
>>763
最近はほとんど使用しない。コンパイラの方が頭良い。
少なくても俺よりな。
766デフォルトの名無しさん:2009/03/16(月) 00:27:34
組み込み用のコンパイラだと独自拡張で、IOとかも叩けるようになっているよな。
本格的にやっているわけではないが、アセンブラなくてもなんとかなることが多いと思う。
767デフォルトの名無しさん:2009/03/16(月) 00:27:46
で関数コールに文句つけれる頭持ってるわけ?
本当に頭悪そう。コンパイラ出力くらい見てるだろ?
768デフォルトの名無しさん:2009/03/16(月) 00:34:24
>>765
IO操作って基本中の基本操作なのに、それをアセンブラでなんてやったえらい手間
769デフォルトの名無しさん:2009/03/16(月) 00:35:25
なんかレベルひくっ
770デフォルトの名無しさん:2009/03/16(月) 00:39:29
>>759
えー、何言ってんだよ。
電子レンジやエアコンや湯沸かし器や炊飯器や冷蔵庫に、そんなに上等な
チップ載っけてるわけないだろ。
たぶんあなたの家にあるマイクロプロセッサの大半が、マイコンレベル。
そして、制御ロジックのほとんどは高級言語でコーディングされている。
771デフォルトの名無しさん:2009/03/16(月) 00:39:29
いまだにC/C++をあえて使う必要のある環境じゃ関数呼び出しは気になるもんなのかね
772751!=757:2009/03/16(月) 00:39:49
>>759
小さなプログラム書いて呼び出し時間を計測してみなよ。
あと、関数の呼び出しコストはarmだろうがcore2だろうが、
それなりにかかるわけでプロセッサがどうのこうのは関係無い。
もちろん呼び出しコストを過大評価するつもりもないけど。
773デフォルトの名無しさん:2009/03/16(月) 00:46:51
>>772
いやだから何パーセント程度を持ってコストかかってると判断するのよ。
あと実際にそれがどこにどの程度表面化してるわけ?
細かいところまで関数呼び出しにしたとしても
その程度の関数呼び出しならstatic関数で書き換えられて
最適化でパフォーマンスに影響しないだろ。
呼び出しコストがかかるのは通常のリンケージのタイプのもので
そのレベルのものを書くほうが面倒だよ。
だから俺の体感としてはよほどかかって5%以下という感覚。
774デフォルトの名無しさん:2009/03/16(月) 00:48:47
>>770
>>759は32bitのマイコン搭載の電子レンジやエアコンや湯沸かし器や炊飯器や冷蔵庫
の製品しか使ってない世界の人。
775デフォルトの名無しさん:2009/03/16(月) 00:49:48
昔MIPS33Mhz程度で関数展開とかループ展開とかしてるコードあったな。
可読性上げつつアルゴリズム少し見直しただけでパフォーマンス3倍程度になった。
776デフォルトの名無しさん:2009/03/16(月) 00:50:42
疲れた
777デフォルトの名無しさん:2009/03/16(月) 00:57:56
>>773
コストと言うよりワーストケースのリアルタイム処理で支障をきたす部分が
出ればアウト。制御系では許されん。
778デフォルトの名無しさん:2009/03/16(月) 00:59:15
関数呼び出しの問題からかけ離れてきたなw
779デフォルトの名無しさん:2009/03/16(月) 01:03:41
オブジェクト指向バカは人間の可読性のことしか考えてないから楽だわな
780デフォルトの名無しさん:2009/03/16(月) 01:04:39
局所的なパフォーマンスだけ見てる本物のアホ
お前のコード遅くて使い物にならん
781デフォルトの名無しさん:2009/03/16(月) 01:05:34
局所的なパフォーマンスもあがってないんだけどなw
782デフォルトの名無しさん:2009/03/16(月) 01:07:46
局所的なパフォーマンスを軽視するのは
大局的なアーキテクチャを軽視するのと
同様に愚かだ
783デフォルトの名無しさん:2009/03/16(月) 01:11:49
>>772
思い出した!!! 極端な例だけどな…

むかし、「はじめて 32bit RISC を使います」って連中と仕事したんだけど、
全然、動かなかった。
「何でうごかねぇの?」って、ソース眺めてみたら、アドレスエラー回避のために
そこいらじゅうで 2byte とか 4byte の memcpy をしてた。

呼び出しのオーバーヘッドの方があからさまにでかいわなwW
784デフォルトの名無しさん:2009/03/16(月) 04:31:55
ハードプログラミングでCって結構使われてるのね,
ところで組み込みプログラミングというのは
プログラムでメモリ管理から通電の挙動まで制御するのをいうんであって
機器にlinuxつっこんでlinux上で機器の制御するのも組み込みプログラミングとは言わないの?
785デフォルトの名無しさん:2009/03/16(月) 07:27:03
どっちも違う
786デフォルトの名無しさん:2009/03/16(月) 07:46:39
組み込みって自分でI/Oを制御してプチOSを作るんだろ?
787デフォルトの名無しさん:2009/03/16(月) 08:54:30
>>786
OSなしっていうのも多いけど、
OSを一からフルスクラップするぐらいなら既存のOSを使うよ。
788デフォルトの名無しさん:2009/03/16(月) 09:01:51
フルスクラップ
789787:2009/03/16(月) 09:36:26
自分で書いてて声に出して笑ってしまった
790デフォルトの名無しさん:2009/03/16(月) 09:50:51
スクラップアンドスクラップ !
すべてをぶち壊すことだ!
もはや政府転覆しかぬわぁぁい!
791デフォルトの名無しさん:2009/03/16(月) 18:28:55
ゆとりだね、君、>>790
春爛漫の790
792デフォルトの名無しさん:2009/03/16(月) 20:27:45
>>790
なつかしいな。
そんなの、すっかり忘れてたよ。
793デフォルトの名無しさん:2009/03/18(水) 23:19:21
C++プログラマは言語から受けるストレスと
ストラウトラップの呪いて禿げる。
794デフォルトの名無しさん:2009/03/19(木) 00:29:37
C++プログラマがうんこにしかならないのはなぜか?
795デフォルトの名無しさん:2009/03/19(木) 00:29:43
どおりでC++プログラマにハゲが多いわけだ
796デフォルトの名無しさん:2009/03/19(木) 00:34:07
>>795
いい加減なことを言うなよ。ウンコがハゲやすいなんて、聞いたことがないぞ。
というか、ちゃんと消化されてれば元々ハゲてるだろ。
797デフォルトの名無しさん:2009/03/19(木) 13:32:05
ははは
798デフォルトの名無しさん:2009/03/20(金) 12:05:15
inskapeはc++なので
skencilがpythonだから推奨って感じか
799デフォルトの名無しさん:2009/03/20(金) 19:57:21
799
800デフォルトの名無しさん:2009/03/20(金) 19:58:33
800
801デフォルトの名無しさん:2009/03/26(木) 00:51:19
inskapeってなんだよ
802デフォルトの名無しさん:2009/03/26(木) 01:02:02
ふと気になりまして、
C++を普段使っている人は、STLやBoostをどれくらい利用しているのだろうか、と。

このスレにC++使いが居るのかわかりませんが、
1. 無いとやってられない。
2. 使うこともある。
3. そんなのあったっけ。
の中から選んでもらいたいと思います。

わたしは、C言語マンセーなので、C++の事情はあまりわかりません。
しかし、仮りにSTLやBoostをC++使いが、よく利用するのであれば、
C言語にもこれ以上のライブラリを作れば、C++が消えると思いましたので、
質問しました。
803デフォルトの名無しさん:2009/03/26(木) 02:31:06
俺は1かな。でも標準に入りきってないboostはまだ未着手だな。
主にVectorでメモリの管理役をやってもらってる。
自作すると劣化版ができちゃったので妥協した。
804デフォルトの名無しさん:2009/03/26(木) 07:31:35
Boost.PreprocessorはCでも使えるヨ
805デフォルトの名無しさん:2009/03/26(木) 14:33:40
おれも1だな。
boostも1/3くらいの機能はもはや必須。
806デフォルトの名無しさん:2009/03/26(木) 14:37:28
STLやboostと同等以上のライブラリのC版ができたとしても、Cには戻りたくないけどな。
namespaceやオーバーロード・ライド無しとか苦行だ
807デフォルトの名無しさん:2009/03/26(木) 18:09:30
くさかべが2CHにやってきてム板を廃墟にしてくれないかな?
808デフォルトの名無しさん:2009/03/26(木) 18:57:39
>>807
昔スレたってたと思うけど。VOIDの人。
809デフォルトの名無しさん:2009/03/26(木) 19:20:17
ライブラリは使うだけで決して作らない
クラスメンバーは全部public
と割り切ってしまえばC++も便利だよね
オブジェクト指向が効率悪いと気付くのに8年かかったよ
810デフォルトの名無しさん:2009/03/26(木) 22:25:17
気の利いた抜け穴が大好きな人にはC++は向いてないと思うよ。
811デフォルトの名無しさん:2009/03/27(金) 00:59:06
>>807
むかしトレイニングとか言ってnntp経由で書き込んでたことがあったね。
あの時は廃墟どころか祭りになってたけど。

俺はその時に高速に即レスを返すために初めて2ちゃんねる専ブラを使い始めたよ。
812デフォルトの名無しさん:2009/03/27(金) 01:27:07
雪駄を全てoperator =で書けば便利になることに気が付いたぞ
ただ、ライブラリを作るのが面倒くさくなったけどな
813デフォルトの名無しさん:2009/03/27(金) 03:12:15
何が悪夢ってオペレータのオーバライドほどの悪夢はないな。
814デフォルトの名無しさん:2009/03/27(金) 17:01:52
オーバーライド専用の予約オペレータがあると良さそうなんだがなぁ
815デフォルトの名無しさん:2009/03/27(金) 17:35:22
簡単にパーサーがつくれるくらいシンプルな言語のほうがいい。
自動解析とかしにくいよ。
816デフォルトの名無しさん:2009/03/27(金) 18:07:19
LinusっていちおうC++チェックしてたのか
817デフォルトの名無しさん:2009/03/27(金) 18:28:53
>>815
C#なんて、IntelliSenseしやすいように構文設計してるからね。
818デフォルトの名無しさん:2009/03/27(金) 18:30:23
>>812
誰もが一回は考えると思うが、型が同じものを複数指定できないから、やめてしまう。可読性も悪いし。
819デフォルトの名無しさん:2009/03/27(金) 22:04:22
>>818
型が同じなら変えればいい
クラスを作るなり、構造体を使うなり、方法はいくらでもある

言ってるだろ、「ライブラリを作るのが面倒くさくなったけど」ってさ
820デフォルトの名無しさん:2009/03/28(土) 07:11:25
よく分からんけど3.
組み込みやそれに近いものをC++でやるくらいなら
Cかアセンブラでメモリ動作に集中して作るほうが結果的に早いと思う。
もっと大きなプロジェクトならC++じゃなくてJava使うし。

C++はWindowsデスクトップ用、特にQTとかDirectXとかに使う言語と思う。
それ以外に使い道が・・・十分すぎるほど十分だけど。

後はGPGPUに期待だな。
821デフォルトの名無しさん:2009/03/28(土) 13:22:19
コピペで使うための俺ライブラリを作ってるからBOOSTとかいらね。
STLは標準だから使ってるけど。
822デフォルトの名無しさん:2009/03/28(土) 13:51:02
Boostの変態共には一生かかっても勝てる気がしないから
それらの劣化コピーでしかない俺ライブラリなんて作る気にはなれんです
823デフォルトの名無しさん:2009/03/28(土) 13:52:33
劣化であっても俺ライブラリの方が大抵コンパイル速度で勝るから
意味はあるんだけどなぁ。
824デフォルトの名無しさん:2009/03/28(土) 14:11:49
コンパイル速度で勝てるwwww
825デフォルトの名無しさん:2009/03/28(土) 14:32:51
C++使いで俺ライブラリ使ってるぜと豪語する奴って
大抵木を見て森を見ずでどうでも良いところに凝る
印象。言語がそうさせるんだろうか
826デフォルトの名無しさん:2009/03/28(土) 15:41:28
>>825
既存のライブラリが複雑で俺の頭では覚えきれないからです。
827デフォルトの名無しさん:2009/03/28(土) 15:57:27
コンパイル速度は実務で意外に重要だから困る
828デフォルトの名無しさん:2009/03/28(土) 15:58:51
boost 使っても理解してもらえない・・・
829デフォルトの名無しさん:2009/03/28(土) 16:05:32
俺はC++はクソだと思う。

昔、超高速で有名だったとあるソフトを開発したのは俺。
今では誰も使ってない。
そんな俺がC++はクソだというのだからクソに決まってる。
830デフォルトの名無しさん:2009/03/28(土) 16:10:08
C++は条件次第で大きく評価かわるかな。
STL+Boost+Qt ぐらいそろって始めて
高速・効率・可搬性の高さにメリットがでてくる。

そうじゃないならC、C#、Javaあたりのメリットにはかてないし。
831デフォルトの名無しさん:2009/03/28(土) 16:46:30
Javascript+HTML位簡単にGUIアプリが作れればいいんだけどねぇ。ネーティブでさ。
832デフォルトの名無しさん:2009/03/28(土) 17:50:57
ぽえりな臭がぷんぷんする。
833デフォルトの名無しさん:2009/03/28(土) 18:42:57
いや、普通に速度求められるソフトじゃC++くらいしか選択肢ないから。
834デフォルトの名無しさん:2009/03/28(土) 19:03:20
いいえCかfortranまたはアセンブリ言語です
835デフォルトの名無しさん:2009/03/28(土) 19:04:37
winnyはDelphiだったよな
836デフォルトの名無しさん:2009/03/28(土) 19:24:53
winnyはBCC
837デフォルトの名無しさん:2009/03/28(土) 19:36:07
Winnyは最初Delphiで、バージョン2からBCB。
逮捕された時、押収品の中にちゃんとBCBのパッケージがあったw
838デフォルトの名無しさん:2009/03/28(土) 20:16:43
Delじゃねーよ
V1はVC++でV2からBCB
839デフォルトの名無しさん:2009/03/28(土) 20:26:52
主要なソフトが何でできているかっていうリストはないんかね?
840デフォルトの名無しさん:2009/03/28(土) 20:29:04
洒落はDelphiだな
しかし洒落にならん

洒落を長時間起動させると音が出なくなる
DirectSoundに悪さでもするんだろうか
841デフォルトの名無しさん:2009/03/28(土) 20:44:04
それはplug-inに仕込まれているんだよ。
さっさと違法なソフトウェア(音声、映像、文章、アプリケーションなど)を共有または取得、配信するのはやめろ。
それでも自分の権利を主張できるプログラマか、見ていて恥ずかしいよ。

そろそろみんな話を元に戻そうな。
842デフォルトの名無しさん:2009/03/28(土) 20:47:43
他人の権利は認めないが俺の権利は主張します。
843デフォルトの名無しさん:2009/03/28(土) 21:14:04
C++を流行らせたのはWindowsだからなぁ
844デフォルトの名無しさん:2009/03/28(土) 23:21:18
Linuxって体系がごちゃついているのとlinus個人の権限が大きすぎるのが嫌だ。
最初から最後までlinusがプロデュースしているならともかく
いろんな人が絡んだ後でも絶対的権限を維持している感じが汚い。
だったらすっきりとプロダクションメイドのMacのがまし(Winもそうだがunix系ではないので)
という事で選択肢にはない。
845デフォルトの名無しさん:2009/03/28(土) 23:21:48
とりとめのない長文ですまん。

最初にいわゆるオブジェクト指向言語に触れたのは、Smalltalk だった。
おそらく、1980年代後半。
そのときの感想は、
「型(クラス)とサブルーチン(メソッド)がスゲエたくさん作ることになる。
それを管理できる開発環境込みじゃないととても使えん。」という感じ。
C++ に最初に出会ったときもそんなイメージだった。
そのころ、自分の仕事の開発環境は、UNIX(SunOS)上で C と emacs と gdb という感じでだったので、
その後 C++ を使おうとしたことがあったが、やはり、ライブラリを構築していくに従って、
管理が大変になり、「使ってられん。Smalltalk みたく、
開発環境がクラスライブラリを認識してくれないとかったるくてしょうがない。」と思って投げてしまった。
しかし、その後、SunOS(Solaris) 上でも GUIアプリの開発の必要がでてきて、
XView のライブラリとか触ったら(もちろん、Cベース)
xv_set(object, attrs) ・・・ みたいな、「オブジェクト指向で書きたいんだけど Cだから仕方なくこうしました」
としか言いようのない API ばかりになっていて、「GUI は オブジェクト指向でやったほうが楽だ。」と感じた。
長らく Windows の主力開発言語が C++ だったのはそういう事情もあるんだろう。
Windows(MS-DOS)の世界では、TuboPascal からこっち、IDE の存在は当たり前になっていたから、
仕事でつかう UNIX では Cオンリーだった自分も、家では TurboC++ で遊んでいた。
しかし、ライブラリ化を巡る使いにくさというのはやはりあって、フレンドとかを無節操に使うとどうにもならなくなった。
Java がフレンドや多重継承をばっさり気って捨てたのは賢い選択だと思う。
846デフォルトの名無しさん:2009/03/29(日) 00:26:01
その代わりへんてこりんなデフォルトスコープやらインターフェイスを採用してしまって、
いまその後始末で大変なことになってるんでそ
847デフォルトの名無しさん:2009/03/29(日) 01:11:09
>>845
> 「GUI は オブジェクト指向でやったほうが楽だ。」
そうだよなぁ。結局適材適所で、
GUI系プログラマ「Cプログラマはウンコ」
んで、オブジェクト指向重視なら
Javaプログラマ「C++プログラマはウンコ」

C++は未熟な言語だけど、叩き台として優秀だったと思う。
848デフォルトの名無しさん:2009/03/29(日) 01:12:49
>>846
JavaもScalaの叩き台になったよな
849デフォルトの名無しさん:2009/03/29(日) 10:02:05
>>845
GUIというか、widgetはオブジェクト指向に合ってるよね
各コンポネントが基本的に独立してるし、ベースパーツを
継承して高機能なコンポネントを作ったり、とか

ただ考え方が統一されていれば、xv_set(object, attrs)でも object->set(attrs)でも
object set: attrs でもたいした違いじゃないように思う
850デフォルトの名無しさん:2009/03/29(日) 11:21:05
>>849
別にオブジェクト指向が最適というわけでもないぞ。
erlangのようなプロセス代数モデルのほうがオブジェクト指向よりGUIに向いている。
851デフォルトの名無しさん:2009/03/29(日) 11:51:19
関数型言語でのGUIの設計といえばFRPというのもあるな
あとはmodel viewの分離を宣言的に定義できるtangible valueとか
852デフォルトの名無しさん:2009/03/29(日) 11:59:24
またyampaか。
しかし、あれはGUIのモデルというわけではなくて、たとえば関数型言語でタイミング取ったりするような
プログラムを書きたい場合のテクニックに過ぎないと思うけどね。

おまけに俺が論文を読んでyampaを使おうと思っても早速使えなかった。
やり方を理解するのに3日ぐらいかかったぞ。
俺の頭が悪いんじゃなくて、理解しにくいということだ。
853デフォルトの名無しさん:2009/03/29(日) 12:15:40
Linusは情報工学とそこから出てきたものが大嫌いなんでしょ
能書きたれるばっかりで他人がまともに使えるものを何一つ作らないから
854デフォルトの名無しさん:2009/03/29(日) 12:21:33
C++は確かにカオスだが、
バージョン1の頃のLinuxカーネルよりはまし。

>>844
Linusはプログラマとしては二流で、
むしろプロジェクトマネージャとして極めて優れている。
855デフォルトの名無しさん:2009/03/29(日) 12:36:06
そういやPaul Grahamもエッセイで情報工学(笑)とか叩いてたな
やっぱり使えるもの出さなきゃ認められんよな
でもJavaとかPHPみたいに使えるもの出しててるものでも叩かれるよな
856デフォルトの名無しさん:2009/03/29(日) 12:43:35
LinusもPaulも情報工学そのものバカにしているわけではないだろ
はてなによく居るXXXは計算機科学的にクソだからクソとか知ったふうな口を聞く奴等は見ていて痛い
857デフォルトの名無しさん:2009/03/29(日) 12:47:35
まあLinusはヘルシンキ大学で計算機科学を学び、
工学修士持ってるわけだが。
Paul Grahamだってハーバードで計算機科学、工学博士だし。
大学で学ばずにまともな物作っている人の方が珍しい。
858デフォルトの名無しさん:2009/03/29(日) 13:40:00
大学で学んでもろくなもん作れない奴ってなんなの?
859デフォルトの名無しさん:2009/03/29(日) 13:47:51
disってる暇があればろくな物つくれってか
Linusとかはまともな物を作っていてその隙にdisるから許される…と
なかなか建設的な論理じゃないか
860デフォルトの名無しさん:2009/03/29(日) 13:56:10
まぁ、いろんな人がいるわな
861デフォルトの名無しさん:2009/03/29(日) 14:02:45
俺が1時間以内に理解できない概念はクソだから流行らない
これは明らか
862デフォルトの名無しさん:2009/03/29(日) 14:33:53
>disってる暇があればろくな物つくれ

感情的にはそうなんだが、発言者の人格、性格で
発言内容の真偽が変わるわけではないからなぁ。
863デフォルトの名無しさん:2009/03/29(日) 14:58:16
プログラミングすらできないのに情報系いくやつってバカだろ?
高校で数学さっぱり分からなかったけど大学の数学はなんかカッコいいし
金融機関に就職もバッチリだから数学科にしました、ぐらいに意味不明
864デフォルトの名無しさん:2009/03/29(日) 15:02:22
学歴厨ぜえよ
865デフォルトの名無しさん:2009/03/29(日) 15:19:08
>>849
そういう意味では、問題になるのはマニュアルかもしれない。
xv_set() のマニュアルページなんて、具体的な情報はほとんど無いに等しい(書きようがないし)。
Window.setWidth() とかになってれば、書くことはっきりしてるし、というか書かないでも分かる。
866デフォルトの名無しさん:2009/03/29(日) 15:28:13
学歴が見られたもんじゃないやつほど学歴の話題に敏感
867デフォルトの名無しさん:2009/03/29(日) 16:19:50
>>861
おいおい自分の頭が糞悪い事を棚に上げてよく言うよ・・・・
868デフォルトの名無しさん:2009/03/29(日) 16:25:22
まぁカメラみたいなもんで、プロ仕様のよりもバカでも使える方が普及するだろうし。
869デフォルトの名無しさん:2009/03/29(日) 16:27:30
>>861
流行している概念は誰かに租借や意訳されていろんな見解が出てくるから、万人向けになっている。
ゆえに、あんたがアーリーマジョリティ辺りなのは明らか。
870デフォルトの名無しさん:2009/03/29(日) 16:27:59
他に代えようのないよほど優れたものでなければ、理解に時間がかかるものは普及しないよ。
871デフォルトの名無しさん:2009/03/29(日) 16:28:51
>>869
だから何?
872デフォルトの名無しさん:2009/03/29(日) 16:37:20
それはオカシイて話。
873デフォルトの名無しさん:2009/03/29(日) 16:38:55
C++なんかよりHaskellのほうが理解するのに時間かかったなあ。
C++なんて、いっても単純な規則が何層にも折り重なってるだけで
仕様を理解するのに時間は必要でも大して頭は使わない。
Haskellは基本的な概念から記号法から入り組みすぎてて
仕様の情報量はC++以下なのに理解するのにはC++の何倍も素養を問われる。
874デフォルトの名無しさん:2009/03/29(日) 16:40:51
>>872
そのアーリーマジョリティーに受け入れられないものが流行らない
と言うことのどこがオカシイのか、全く意味不明
875デフォルトの名無しさん:2009/03/29(日) 16:43:33
一騎当?ですか。
876デフォルトの名無しさん:2009/03/29(日) 16:50:20
>>869
一番得する層じゃないの?それ
877デフォルトの名無しさん:2009/03/29(日) 16:52:02
>>869はアーリーマジョリティーって言いたかっただけだから。騒がせてごめんな。
878デフォルトの名無しさん:2009/03/29(日) 16:52:41
俺なんか未だにPrologの文法がさっぱりわからないが
C++はだいたいわかって使いこなせる

どう見てもPrologの方が文法簡単だろ
879デフォルトの名無しさん:2009/03/29(日) 16:54:49
>>878
何でさっぱり分からないものを簡単だと言い切ってるの?アホなの?
880デフォルトの名無しさん:2009/03/29(日) 16:55:35
何とか辺りって書くと過剰反応する人いるよね。辺り!って節に。
意味的にはイノベータではないので!って意味なんだけど。読めなかったのか。/(^。^)\
881デフォルトの名無しさん:2009/03/29(日) 16:56:13
これがC++脳ってやつか
882デフォルトの名無しさん:2009/03/29(日) 17:05:04
>>873
君がC++でもHaskellでもサンプル程度の規模の
プログラムしか書いたことがない、というのは伝わった。
883デフォルトの名無しさん:2009/03/29(日) 17:07:09
出来ることが同じなら、ルールが少ない方が本質的だからね。
884デフォルトの名無しさん:2009/03/29(日) 17:09:05
>>882
いや、思いっきりGUIアプリ書いてるんだが…
885デフォルトの名無しさん:2009/03/29(日) 17:15:57
GUIアプリ(笑)
886デフォルトの名無しさん:2009/03/29(日) 17:18:19
どうした?なんか悔しかったのか?
887デフォルトの名無しさん:2009/03/29(日) 19:35:54
>>884、Haskellで書いた簡単なGUIアプリ見せてよ
888デフォルトの名無しさん:2009/03/29(日) 20:54:11
Haskellでみんな何のGUIライブラリ使ってるの?
gtk2hsとかっておもいっきりCでgtk使ってるのと変わらない印象を受けるんだが。
889デフォルトの名無しさん:2009/03/29(日) 22:09:42
haskell使ってる人はGUIとかあんまり興味ないと思うんだよねぇ。
890デフォルトの名無しさん:2009/03/29(日) 22:23:39
思うのは自由だ。
891デフォルトの名無しさん:2009/03/29(日) 22:25:10
関数型が理解できる俺って頭いい。って言いたいんだろ。
892デフォルトの名無しさん:2009/03/29(日) 22:29:28
つか、IDほしいよな、この板
893デフォルトの名無しさん:2009/03/29(日) 22:31:46
>>891
> 関数型が理解できる俺って頭いい。って言いたいんだろ。
俺の人生経験上、そういう発言をするやつほど、
自分が思っていることを他人も思っていると勘違いする傾向にあるように思うよ。
894デフォルトの名無しさん:2009/03/29(日) 22:33:37
つまり、>>891は「関数型言語が理解できるやつは頭がいい」と思っていることになる。
>>891が関数型言語を理解している人間なら、ナルシストだということ判断できるし、
理解していないならただの嫉妬深い惨めなやつということだ。
895デフォルトの名無しさん:2009/03/29(日) 22:36:48
要はあれだよ、自分の気に言わない発言してる人を見つけると、
そいつが「痛い理由」「馬鹿な根拠」でそれを言ってることにしたくてたまらなくなるタイプ。

「自分以外はみんな馬鹿症候群」の人が、具体的な言い返し方を思いつけない時に見せる、
キャラクターメイキングによる自尊心の維持ですね。
896デフォルトの名無しさん:2009/03/29(日) 22:40:35
>>893-895
悔しがりすぎだろw
897デフォルトの名無しさん:2009/03/29(日) 22:45:55
>>896=>>891
www
898デフォルトの名無しさん:2009/03/29(日) 22:47:22
関数型っていうか、数学をさくさく理解できるレベルなら、
プログラミング言語まわりで苦労することはないんだろうな・・
最近応用数学まわりの知識が必要になったんだけど、ぜんぜん理解できなくてきつい><
899デフォルトの名無しさん:2009/03/29(日) 22:52:51
>>891
もうなんというか、哀れすぎて掛ける言葉が見つからんわw
900デフォルトの名無しさん:2009/03/29(日) 23:02:37
>>898
関数型言語ができて、そしてGUIが出来るのが凄いプログラマで
応用数学が出来るのが凄いプログラマじゃないぽ
901デフォルトの名無しさん:2009/03/29(日) 23:02:43
>>898
プログラミング言語の理解に数学の知識なんてほとんどいらないだろ。せいぜいブール代数くらいか?
プログラミングには数学の知識が必要になることもあるだろうけど。
902デフォルトの名無しさん:2009/03/29(日) 23:05:37
>>900
数学が出来なきゃアルゴリズムのアイデアも浮かばないわけで・・
優れたプログラマ=優れた計算機科学者なわけです
903デフォルトの名無しさん:2009/03/29(日) 23:08:39
>>902
数学を崇拝しすぎだろ。数学なんて単なる道具の一つだ。
よほどのパープリンじゃなければ、高校程度の数学ができればプログラムは書くには十分すぎる。
904デフォルトの名無しさん:2009/03/29(日) 23:09:25
プログラマ=優れた計算機科学者
信じているって、数学科卒の人
905デフォルトの名無しさん:2009/03/29(日) 23:10:27
根本的な間違いを指摘すると、計算機科学は数学科じゃない。
906デフォルトの名無しさん:2009/03/29(日) 23:12:56
>>905
>>902
>数学が出来なきゃアルゴリズムのアイデアも浮かばないわけで・・

>優れたプログラマ=優れた計算機科学者
と関連を教えてクレ
907デフォルトの名無しさん:2009/03/29(日) 23:13:57
>>906
>>902に訊けよ
908デフォルトの名無しさん:2009/03/29(日) 23:15:14
>>898
理解できないものを必要と決め付けるのはおかしい。
909デフォルトの名無しさん:2009/03/29(日) 23:17:00
数学をできれば、プログラミング言語が理解できるって、凄い幻想だよな。
910デフォルトの名無しさん:2009/03/29(日) 23:19:22
でも、
国語が出来ればプログラミング言語が理解できるってのは正しい
911デフォルトの名無しさん:2009/03/29(日) 23:19:59
自然言語プログラミングか。夢の世界だな。
912デフォルトの名無しさん:2009/03/29(日) 23:20:01
設計やアルゴリズムを考えてプログラミングするのがプログラマで、
面白みのないありふれたコードを打つのがコーダ

誰でも知ってるようなアルゴリズムをライブラリから引っ張り出してコードを打つだけならそれはコーダの仕事であって、
より優れたアルゴリズムを発明して実装するのはプログラマの仕事。
最近のアルゴリズムはどんどん複雑化しているから、普通の人の頭にポンと浮かぶようなものではない。
常にアルゴリズムは数学的(計算機科学的)な体系を元に作られるものだ。
913デフォルトの名無しさん:2009/03/29(日) 23:20:43
>>910
なでしこ だけね。
914デフォルトの名無しさん:2009/03/29(日) 23:23:30
>>912
そう言う意味なら、アルゴリズムを作るのは計算機科学者。プログラマーはプログラムを作る人。コーダーはプログラムを打ち込む人。

御託を並べる前に、社会勉強してこい。
915デフォルトの名無しさん:2009/03/29(日) 23:24:50
数学理解できないレベルでもプログラミングはできるってことを主張してなにが楽しいんだ?
916デフォルトの名無しさん:2009/03/29(日) 23:25:47
プログラミング程度の作業に数学が必要なんて主張してなにが楽しいんだ?
917デフォルトの名無しさん:2009/03/29(日) 23:28:35
>>915
お前さんの言う「数学」とは、どの分野のどのレベルのことを言うんだ?
918デフォルトの名無しさん:2009/03/29(日) 23:28:59
昔CAD作ってたけど、そのときは数学必須だった。
高校の数学の参考書と、大学の幾何系の教科書はそろえた。
(特殊な例だとは思うが)
919デフォルトの名無しさん:2009/03/29(日) 23:29:25
職業に科学者って付くと凄く聞こえるな
ITドカタとは異なる世界の人だな
マに科学者なんていないだろ
920デフォルトの名無しさん:2009/03/29(日) 23:32:37
そりゃ文章書きだって、
社内のお知らせ文書書くレベルから、
法律書く人、哲学書書く人、小説書く人など千差万別だからね。
プログラム書く人だって、ピンキリだわね。
921デフォルトの名無しさん:2009/03/29(日) 23:33:42
会計ソフトを作るのに会計の知識が必要だった。
競馬予想ソフトを作るのに競馬の知識が必要だった。

特定分野のソフトを作るにはその分野の知識が少なからず必要になる。
数学も単に特定分野の一つ。プログラミングにとって特別なものじゃない。
922デフォルトの名無しさん:2009/03/29(日) 23:37:38
プログラマはいろんな分野の知識をつけられる素晴らしい職業ってことか。
923デフォルトの名無しさん:2009/03/29(日) 23:38:48
いろんな分野のソフトを開発すればな
924デフォルトの名無しさん:2009/03/29(日) 23:43:24
>>917>>915じゃないが
俺的には足し算引き算レベル
凄いだろ

普通は物理の素粒子論ぐらいに出てくるレベルの高等数学だろ
大学卒当たり前の今じゃ、教養レベルの数学は知ってて当然だろうからな
925デフォルトの名無しさん:2009/03/29(日) 23:44:05
Webプログラマだったら誰でもなれるけど、
科学技術計算とかシミュレーションとかのプログラマだと人を選ぶよな。
926デフォルトの名無しさん:2009/03/29(日) 23:46:02
>>914
あのね、ニートの君に言っておくけど、社会に出たらコーダーの事をプログラマーって呼ぶんだよ。
コーダーなんて仕事はないんだよ。
927デフォルトの名無しさん:2009/03/29(日) 23:49:15
プログラマーが数学に憧れを抱いていることはわかった。
928デフォルトの名無しさん:2009/03/29(日) 23:51:14
数学が、、数学さえできれば、俺はもっと凄くなれるんだー!!

みたいなww
929デフォルトの名無しさん:2009/03/30(月) 01:19:08
でも数学できるからといってHaskellがバリバリ使えるようにはならんよ。
たぶん数学全く知らなくてもHaskellバリバリ使うことはできるだろう。

例えば関係ないけど数学全く知らなくてもYコンビネータ導出できるだろ?
ラムダ計算の理解があって導出方法を知っていれば。
930デフォルトの名無しさん:2009/03/30(月) 01:48:29
Haskellに関しては、変な先入観が多すぎるなからなあ
高度な抽象化はもちろん低レベルな処理もしっかりこなせるのに、誤解されすぎ
931デフォルトの名無しさん:2009/03/30(月) 02:28:36
Modern C++ design をパラ読みして、C++ すげーって思った。
それと同時に、C++ は使い手を選びすぎる言語だとも思った。
使いこなせる人だけ集まって使うのなら、かなりいいだろーな
っていう印象。
932デフォルトの名無しさん:2009/03/30(月) 03:18:04
皆さん日本語がお上手ですね。
933デフォルトの名無しさん:2009/03/30(月) 05:35:19
なんかコンプレックスの塊のような奴らばっかだな
934デフォルトの名無しさん:2009/03/30(月) 07:41:05
>>930
ラムダ計算の理解にだって立派な数学的素養が必要だと思うぜ
抽象化された世界で物事を考え進めていける力が要る

数学ができることと数学的素養があることは同値ではないがな
935デフォルトの名無しさん:2009/03/30(月) 07:54:15
プログラミングには料理を作る程度の数学の素養が必要
936デフォルトの名無しさん:2009/03/30(月) 09:28:26
9年前から会話の内容が変わってなくて安心した
いつの時代もプログラムができる人間にコンプレックスを抱いてる人間がいるんだなあ
937デフォルトの名無しさん:2009/03/30(月) 09:29:49
もう算数でいいよ
938デフォルトの名無しさん:2009/03/30(月) 13:07:58
例えば私程度のプログラマだと、画像拡大時にリニア補間することくらいは簡単に思いつくし実装できるけど、
3次式補間辺りを境に、多次式の補間はちょっと手に負えない。
ソートにしても、クイックソートからイントロソートは想像できても櫛ソートなんかは想像できなかった。
大体その辺りが数学的素養の有無の境界線じゃないの?
939デフォルトの名無しさん:2009/03/30(月) 13:23:28
計算機科学またはそれよりの数学科の博士課程を出ている人間とそれ以外
940デフォルトの名無しさん:2009/03/30(月) 13:39:28
ド・モルガンの法則(笑)
941デフォルトの名無しさん:2009/03/30(月) 13:44:41
ドモリ・マンの法則
942デフォルトの名無しさん:2009/03/30(月) 13:45:46
>>936
9年ごときで「いつの時代も」なんて言ってんなよ
943デフォルトの名無しさん:2009/03/30(月) 14:02:21
弩・モリマン
944デフォルトの名無しさん:2009/03/30(月) 14:40:08
アルゴリズムは歯車のひとつにしかならない
システム全体のデザインを考えるほうが楽しい
945デフォルトの名無しさん:2009/03/30(月) 14:56:14
fractal
946デフォルトの名無しさん:2009/03/30(月) 14:59:33
ところが小物ソフトは、たいてい一つの処理をするために使い勝手を良くするためのGUIとかがゴチャゴチャ付属している
だけというものがよくある。

商用ソフトでもエンコとかは完全にアルゴリズムを売りにしてるだろ?

最近のgoogleの検索システムはクラウドコンピューティング(笑)だとか何とか言われてるけど、
そのネットワークを考えるにもパイ計算っていう数学を元に設計されてるの知ってる?
パイ計算は関数型言語と親和性が高いから、今後googleも関数型言語一色に染まりそうだな。
947デフォルトの名無しさん:2009/03/30(月) 15:04:41
小規模な業務システムには数学はいらないかもしれない。
そんな頭を使わなくて良いシステムのプログラミングは誰でも出来るから、
そんな仕事してるぐらいでプログラマ面されても困るw
948デフォルトの名無しさん:2009/03/30(月) 15:11:35
金貰っていればプログラマ、コードを日常的に書いてればプログラマ
ソースコードのあパラメータを少し変えてコンパイルして動作したときにSEGVるのもハックだし、
それをやる人もハッカー
949デフォルトの名無しさん:2009/03/30(月) 15:31:24
>>946
GUI付属するのやめてたとえばDLLを使ってもらう形にしたら
本当にただの歯車になっちゃうよ
つか、そのほうが使い勝手良いんだけど
950デフォルトの名無しさん:2009/03/30(月) 17:57:58
リーナス、ダイクストラ、チューリング、ストールマン、シャノン、ケント・ベック、アラン・ケイ、ウィル・ライト、チャーチ
彼らの秀でた能力すべてを数学的能力というならもれもそれが欲しいね。
951デフォルトの名無しさん:2009/03/30(月) 18:05:30
リーナス  = プロマネ
ダイクストラ = 数学者
チューリング = 数学者
ストールマン = 宗教家
シャノン   = 数学者
ケント・ベック = ほら吹き・しったか
アラン・ケイ = ペテン師・しったか
ウィル・ライト = 誰・・・?w
チャーチ = 数学者
952デフォルトの名無しさん:2009/03/30(月) 18:08:18
所詮そのレベル
953デフォルトの名無しさん:2009/03/30(月) 19:12:17
ウィル・ライトはシムシティの人かな
954デフォルトの名無しさん:2009/03/30(月) 19:39:47
大学の教科書に名前載ってる人の理論を知ったかしたいと。
955デフォルトの名無しさん:2009/03/30(月) 19:41:39
>>954
教科書信者乙w
956デフォルトの名無しさん:2009/03/30(月) 19:46:33
以下本を読む論争
957デフォルトの名無しさん:2009/03/30(月) 19:52:44
チューリング = アッー!!
958デフォルトの名無しさん:2009/03/30(月) 21:33:33
数学数学言ってるバカがいるようだが
プログラマーなら先ずお前の給与明細見てみろ。
特別な技能なんて必要とされてないことがわかるはずだ。

わからなければ、数学以前に数字を読めるようになった方がいい。
959デフォルトの名無しさん:2009/03/30(月) 21:41:08
>>958
そんな底辺プログラマーの話はしてないんですよ^^;
960デフォルトの名無しさん:2009/03/30(月) 21:45:41
プログラマーなのに底辺じゃないと思ってるなんておめでたいなw

もう数学でも何でも好きにしていいよwww
961デフォルトの名無しさん:2009/03/30(月) 21:48:48
プログラムに使う数学なんて底辺数学だろw

現代の数学者が現在取り組んでるようなものじゃない。
962デフォルトの名無しさん:2009/03/30(月) 21:49:40
プログラマーの数学コンプレックスはすごいな。
963デフォルトの名無しさん:2009/03/30(月) 21:52:31
数学を語るプログラマーって
英語で自己実現を夢見るOLと同じ精神構造だよね
964デフォルトの名無しさん:2009/03/30(月) 22:06:17
違うよ、数学科崩れの出来ないプログラマーが幻想のアイデンティティを語ってるだけ。
965デフォルトの名無しさん:2009/03/30(月) 22:08:55
>>960
おまえ・・みんながお前と同じ境遇だと思ってるのか?w
966デフォルトの名無しさん:2009/03/30(月) 22:10:16
>>961
と思っているうちは底辺です
967デフォルトの名無しさん:2009/03/30(月) 22:25:35
おまいら(´;ω;`)

弱い者たちが夕暮れ〜更に弱い者をたたく〜♪
968デフォルトの名無しさん:2009/03/30(月) 22:41:28
日本ってハード信仰強すぎだよなw
何あのアホみたいな見積もり。
どんだけプログラマー馬鹿にしてるのよ。
と、趣味グラマーが仕事で見かけた扱いの悪さに怒ってみました。
969デフォルトの名無しさん:2009/03/30(月) 23:07:53
悔しかったらハード作ってみればww
970デフォルトの名無しさん:2009/03/30(月) 23:08:44
趣味グラマーってw ニートだろ どうせ
971デフォルトの名無しさん:2009/03/30(月) 23:10:04
いや、コンパイラをインストールしてプログラムした気になってる中学生だろww
972デフォルトの名無しさん:2009/03/30(月) 23:13:30
どんだけひとを低く見れば気が済むんだ。
おまえら「おれはバグを出さない。」って本気で思い込むタイプだろ。
973デフォルトの名無しさん:2009/03/30(月) 23:14:48
バカな人を低く見るのと、自分を過信するのとは違う
974デフォルトの名無しさん:2009/03/30(月) 23:51:10
違うけど近いな
975デフォルトの名無しさん:2009/03/31(火) 00:33:32
どっちみち嫌な奴にはかわりない。
976デフォルトの名無しさん:2009/03/31(火) 00:34:13
昔コーディングするのは理系と相場が決まっていたが
今や文系のほうが多いみたいだからな
Knuth先生が言っていたのと全く違う意味で
977デフォルトの名無しさん:2009/03/31(火) 01:03:52
いや、昔はA型が多くて今はO型が多いみたいだよ
978デフォルトの名無しさん:2009/03/31(火) 01:11:07
劣性遺伝のO型が増えるというのが不思議だ
979デフォルトの名無しさん:2009/03/31(火) 01:27:03
遂に血液型談義にまで発展したか
どうしようもないなw
980デフォルトの名無しさん:2009/03/31(火) 01:44:16
初心者なんですが、
A型(アセンブリ)、O型(オブジェクト指向)で合ってますか?
わかりません><
981デフォルトの名無しさん:2009/03/31(火) 01:52:02
A型はアスペクト指向ですよ。
982デフォルトの名無しさん:2009/03/31(火) 04:11:55
C++は不格好な言語だからな。
ネイティブバイナリ吐くメジャーなOO言語が何でないんだ。
D言語とかどっかIBMとかでいいから買い取れよ。
983デフォルトの名無しさん:2009/03/31(火) 07:24:32
UNIXはマウントして使うものだから
常時ハードウェアの状態を監視したりしてないんじゃないの?
984デフォルトの名無しさん:2009/03/31(火) 08:15:11
何の話?
985デフォルトの名無しさん:2009/03/31(火) 12:51:22
過去の資産の互換性をばっさり捨てればc++も綺麗になるんでない?
986デフォルトの名無しさん:2009/03/31(火) 12:57:03
C++を捨てるほうが早い
987デフォルトの名無しさん:2009/03/31(火) 13:04:54
いやーもうそういうレベルじゃなくなってる。
規格書を精読している自分も完全に理解しているなんてことは
絶対に言えない。Name lookupだけに限っても理解できてない。
Guru of the Weekを全正解の人間なんているのだろうか?
http://www.gotw.ca/gotw/
我こそはと思う人は↓標準化委員会のDefectリストをやっつけてくれw
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
C++大好き人間なんですが。
まあフルに機能使おうと思わなければいい言語だと思う。
実際モバイル端末の分野では競合いないし。
988デフォルトの名無しさん:2009/03/31(火) 13:13:46
組み込みでは大成功だね
機能を絞って使えば。
機能を絞って使えば。
989デフォルトの名無しさん:2009/04/01(水) 00:21:35
Linus,C++出来ないの?
990デフォルトの名無しさん:2009/04/01(水) 00:25:18
出来ると思ってるお前よりは出来るが本人はそれを「出来ない」と思っている。
991デフォルトの名無しさん:2009/04/01(水) 00:28:50
まぁboost見た後だと9割くらいのC++使いは自分の未熟さを思い知るんじゃないか。
992デフォルトの名無しさん:2009/04/01(水) 00:32:38
boostはともかくパズル解けるほうがすごいと思ってる奴が多い。
993デフォルトの名無しさん:2009/04/01(水) 02:00:02
bindやfunctionのクラスなんてわけわかめ
994デフォルトの名無しさん:2009/04/01(水) 02:10:21
lambdaとかC++じゃなくてテンプレートを使ったlispもどきだからな
gccのプリプロセッサを使ったlispもどきといい勝負してるよ悪い意味で
995デフォルトの名無しさん:2009/04/01(水) 17:44:13
lispの影響を受けるのは仕方ないだろ?
日本の戦後もアメリカの影響を受けてここまで成長したんだ。
996デフォルトの名無しさん:2009/04/01(水) 18:01:17
>>994 関数がファーストクラスオブジェクトでない言語でやると
こんなに汚くなりますって見本だな, boost lambda
997デフォルトの名無しさん:2009/04/01(水) 18:44:43
boostは涙ぐましい努力で無理矢理実現してるから汚いのも仕方ないが
言語仕様として追加されたC++0xのlambdaも同じくらい汚いってどういう事なんだろ
998デフォルトの名無しさん:2009/04/01(水) 18:51:18
作ってる人が同じだから。。。
999デフォルトの名無しさん:2009/04/01(水) 18:57:11
C++は、使う人によってどうしようもなく変態な言語になる。
非効率で廃れやすくて保守が難しくなって自然消滅するプロジェクトにはもってこいの言語ということでFA。
私は、C言語で十分満足しているから、C++は使いたくないね。
1000デフォルトの名無しさん:2009/04/01(水) 19:23:26
>>999
で、何故お前はどうしようもなく変態なコードをCで書いてしまうんだ?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。