5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2009/02/11(水) 15:43:09
> 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とかが適用できるような案件だったら、
「作るべきコード」が強制できる罠。

逆に無理してこうしたパターンに当てはめようとしちゃう所がダメなのかもね。

25 :24: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
>>126

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
>>162
ほら

http://www.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.bz2

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
>>171
>>170

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
>>236
ほら

http://www.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.bz2

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のままでもそう時間は変わらないことが期待できるけど。

一応、次の規格では改善されて、デフォルト引数使う横着はなくなるので、この心配はなくなるはず。

324 :320: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 などではどんなライボラリを使えばいいのか答えなさい(涼宮ハルヒ風に^^)

360 :352: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に直接入れられる
再配置はどうなるの?


371 :360: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
ttp://up2.viploader.net/pic2/src/viploaderf150762.jpg

おまいらwww

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
負け犬遠吠え

408 :ウンコなスレは停止しました。。。:2009/02/27(金) 16:44:18
真・スレッドリスターター。。。( ̄ー ̄)ニヤリッ


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
Write in C
http://www.youtube.com/watch?v=XHosLhPEN3k

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
そうやって、車輪の再発明に勤しむのも結構。
車輪がすでにあることを否定しなければ。


553 :550: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になるんだろうね。

595 :594:2009/03/07(土) 22:17:31
アンカー間違えた。スマソ。
>>593


596 :594: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
そういうこと行っているおまえは
関数型言語使ったことあるのか

600 :594: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++のほうがまし

604 :594: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
おまえが「クラスライブラリ」って単語使って何が言いたいのかさっぱりわからん。

608 :594:2009/03/08(日) 00:20:27
>>605
static?のことだったら意味分からん。おせーて。
constのことだったら、C#は将来デフォでconstになるかもよ。

609 :デフォルトの名無しさん:2009/03/08(日) 00:30:22
C#の話はしてませんから。

610 :594:2009/03/08(日) 00:39:16
そうかなあ。関数型言語の話が振られてるときに、
C言語に持っていくのは難易度高いぞ。

611 :デフォルトの名無しさん:2009/03/08(日) 01:11:07 ?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
誘導
http://pc11.2ch.net/test/read.cgi/tech/1235803518/

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
http://mamono.2ch.net/test/read.cgi/newsplus/1236988724/

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
ニンジンを切るように三つに魚を切り分けるのと、
再利用性を考えて三枚に下ろすのとでは違うよね。

でも、長いタスクをあいまいにニンジン切り分けするときってあるよね。

706 :705: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++をあえて使う必要のある環境じゃ関数呼び出しは気になるもんなのかね

772 :751!=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
フルスクラップ


789 :787: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

157 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)