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

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

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

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

Linus Torvalds

http://tabesugi.net/memo/2009/1a.html#152154
2デフォルトの名無しさん:2009/01/24(土) 13:33:14
マでやれよカス
3デフォルトの名無しさん:2009/01/24(土) 13:35:12
C++ができたら、ほかの言語はなんでもできるみたいな自信家多いな > C++PG
4デフォルトの名無しさん:2009/01/24(土) 13:37:27
いまだにC++がオブジェクト指向言語だと思ってるやつもいるしな
5デフォルトの名無しさん:2009/01/24(土) 13:40:03
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
6デフォルトの名無しさん:2009/01/24(土) 13:42:36
Gitのソースを見てみたら、素直な書き方なんで心が洗われるような気がした。
C++好きのやつは、初心者のころの素直な気持ちを思い出して欲しい。
7デフォルトの名無しさん:2009/01/24(土) 13:44:15
仕事してると Linus の言う事はある程度分かってくる。
C++ 使いこなせる奴自体が少ないというのが C++ の大きな問題だということに。
8デフォルトの名無しさん:2009/01/24(土) 13:54:59
悪いけどLinusってフレーマーっていうイメージしかないから
いまいち発言に説得力はないんだよね。論理的でもないし。
9デフォルトの名無しさん:2009/01/24(土) 14:09:03
Linus氏はポインタで優越感を感じテンプレートに劣等感を感じているのです。
Ubuntuです。
思いやりです。
10デフォルトの名無しさん:2009/01/24(土) 14:10:57
>>4
C++はオブジェクト指向言語だが?
11デフォルトの名無しさん:2009/01/24(土) 14:14:00
Linusが言ったということだけで2chの厨房レベルの発言でも
感化される権威に弱い日本人って…
せいぜい現場の親方どまりのLinusが
Bjarneに劣等感いだきまくりなのが見え見えでなんとも…

ちなみに俺はLinusがFedora使いだと知った時点であんまり信用できんな、と思いはじめた。
12デフォルトの名無しさん:2009/01/24(土) 14:14:42
Linusが良いことを言った!

クラスベースのオブジェクト指向言語なんて、オブジェクト指向
じゃないし。言語仕様がコロコロ変わり過ぎる。しかも互換性無し。
C++はゲロゲロのウンコ。C++マは、ウンコにたかる蝿に過ぎない。
13デフォルトの名無しさん:2009/01/24(土) 14:15:06
>>10
うんうん。そうだね。
14デフォルトの名無しさん:2009/01/24(土) 14:16:09
Linus は時代に適応できない過去の人だな。
15デフォルトの名無しさん:2009/01/24(土) 14:18:19
>>10
まだ居るんだこういう人・・・
16デフォルトの名無しさん:2009/01/24(土) 14:18:47
C++ はマルチパラダイム言語だよ
17デフォルトの名無しさん:2009/01/24(土) 14:19:54
まあ、実際、マルチパラダイム言語なんて百害あって一利なし、というのは確かだが。
18デフォルトの名無しさん:2009/01/24(土) 14:20:26
オブジェクト恥垢
19デフォルトの名無しさん:2009/01/24(土) 14:20:35
雑魚プログラマには使えんだろうな。
20デフォルトの名無しさん:2009/01/24(土) 14:42:22
いいこと言ってるな、とは思うが、cで書いてるとC++のSTLとかメンバ変数とかを使いたくなる
こともあるんだよなあ。いちおう、便利なところは便利だわC++。
世の中の「cわかります」と「C++わかります」って言ってる奴のほとんどがわかってない、
というのは同意。
2120:2009/01/24(土) 14:45:30
メンバ変数じゃなくてメンバ関数だよ。メンバ変数ならcにもあるっての。
22デフォルトの名無しさん:2009/01/24(土) 14:53:53
型チェックを強化してくれ。
あとやっぱりテンプレートも欲しい。
そしたら C でもいい。

あとやっぱ無名 union も欲しい。
C++ に無いけど関数ない関数もくれ(0xのラムダは却下)。
STL 相当のも欲しいけど、Boost みたいな何かができることを期待する。
23デフォルトの名無しさん:2009/01/24(土) 14:54:24
ところでみんなはC++分かってると豪語できる?
24デフォルトの名無しさん:2009/01/24(土) 14:56:51
cならすっかりわかっていると言い切れるが、C++はよくわからん。
25デフォルトの名無しさん:2009/01/24(土) 15:09:03
 C++が最強だと言っていたときがあったが、いまではC言語を使っている。
複数人で開発するときに理解度が違いすぎて使えない。
とはいっても、ネームスペースとテンプレートが欲しい。
しょうがないから、いろいろな方法で同じようなことしているけどね。
26デフォルトの名無しさん:2009/01/24(土) 15:11:40
複数人で開発するときにはCよりC++だろ。
常識で考えても非常識で考えても。
27デフォルトの名無しさん:2009/01/24(土) 15:22:10
C++は、フールプルーフが無いからな。
成果物の質はプロジェクトのメンバーの最底辺に揃えられる。
28デフォルトの名無しさん:2009/01/24(土) 15:26:11
なんだかんだでJava6が最強だ
29デフォルトの名無しさん:2009/01/24(土) 15:30:41
どうも、C++をオブジェクト指向ではないということが「カッコいい」と勘違いしてる奴がいるな。

C++は間違いなくオブジェクト指向言語だよ。
30デフォルトの名無しさん:2009/01/24(土) 15:31:16
寒々しい休日の午後にふさわしい実のない流れだな。
31デフォルトの名無しさん:2009/01/24(土) 15:53:04
おいお前ら、
Linusが何千人もの(自称含めた)開発者を相手にしていることを忘れるなよ・・・

>>29
> 「カッコいい」と勘違いしてる奴がいるな。

あー、中二病っていうんですかね。
32デフォルトの名無しさん:2009/01/24(土) 15:54:10
>>29
>「カッコいい」と勘違いしてる奴がいるな
俺がお前に抱いた感想そのもの
33デフォルトの名無しさん:2009/01/24(土) 16:01:40
Firefox
Google Chrome
OpenOffice

これらはLinusのいう「ひどい言語」で作られています。ゲロゲロです。
34デフォルトの名無しさん:2009/01/24(土) 16:03:34
>>33
Firefox以外はゲロゲロではあるが。
35デフォルトの名無しさん:2009/01/24(土) 16:22:26
>>27
ちょっと待ってくれよ。
C と比べての話だろ?
C++ の方がコンパイル時エラー検出に役立つ仕様が多いだろ?

試しに例を挙げてくれよ。
36デフォルトの名無しさん:2009/01/24(土) 16:27:32
言語と人は別だと思うんだが
その辺、整理したほうがよくない?

C++使いは普通Cも出来るからバイリンガルなわけで
用途に合せて使いわければいいでは?
37デフォルトの名無しさん:2009/01/24(土) 16:31:34
>>36
まあそうだな。
Cだと走らせてみないとわからないようなバグが、C++だとコンパイル時にわかったりする。
C++の方が便利なのは確かだろう。後発だし。
ただし、ここでは、「便利なのを使うと素人がたかって来るからやむを得ず避ける」という話だから、
言語と人とを分けて考えるのがちと難しい。

38デフォルトの名無しさん:2009/01/24(土) 16:37:56
言語仕様を人間フィルタ代わりに使うって、
実際的かもしれんが非生産的というかかっこわるいな。
C++が幅広すぎてノウハウ統一がしにくいなら
規約体系作ったりすればいいのに。
Linusってやっぱりギーク的ネガティブ思考なのかな。
こう、イメージとは違って
フロンティア精神みたいなものとはかけ離れてるな。
まあ実際、Linus製ソフトってGitとかLinuxとか
基本的にカイゼンモデルで開拓系といよりは職人系なんだけど。
39デフォルトの名無しさん:2009/01/24(土) 16:58:43
>>34
Firefoxもかなりゲロい
GNOMEもコンポーネント化できずにwebkitへ行った
40デフォルトの名無しさん:2009/01/24(土) 16:59:36
>>33
確かにゲロゲロだわ。Chromeは知らんが、
FirefoxもOOoも全てソースから、ちとマイナー環境で
buildしようと試みるとウンコ踏みまくりだった。
コンパイラやライブラリの些細なバージョン違いに
まで依存し過ぎ。
41デフォルトの名無しさん:2009/01/24(土) 17:02:45
FFはビルドしたことないけど、
OOoはビルドにディスク空き10GB以上必要なんだよね…なにそれ?w
42デフォルトの名無しさん:2009/01/24(土) 17:03:03
リーナスが口が悪いのは今更だろ?
「Minixはゴミ」
「OSXはウンコ」
「Gccはどんどんゴミになっていく」
「GNOMEはナチス」
「SVNは信じられないゴミ」
これにC++が加わっただけ。
43デフォルトの名無しさん:2009/01/24(土) 17:04:17
美味しそうな食材集めて至高の料理を、と思ったら
出来上がったのがゲロだったと、そういう事ですか?
44デフォルトの名無しさん:2009/01/24(土) 17:07:22
firefoxって、結構ガチガチに規約で固めてあると思ったけど
それでもゲロゲロなんか
linuxががゲロゲロだと困るからね
45デフォルトの名無しさん:2009/01/24(土) 17:17:02
C++使う奴はよって来るな!もいきー!
46デフォルトの名無しさん:2009/01/24(土) 17:30:56
45をコンパイルすると
もいきー!→もんきー!→猿→西遊記→ドラゴンボール→悟空→最強

45 名前:デフォルトの名無しさん :2009/01/24(土) 17:17:02
C++使う奴はよって来るな!最強!

46 名前:デフォルトの名無しさん :2009/01/24(土) 17:17:02
ありがとう。
47デフォルトの名無しさん:2009/01/24(土) 17:32:46
よく読んでみなよ。
C++とC++の言語仕様が糞なのじゃなくて、

1.これを大して理解してない奴
2.そいつがこしらえた糞コード

がウンコっていってんでないか?

シリアルポートたたいたり、デバイスドライバ作ったり、割り込み考えたりするなら、C++はイラン。
48デフォルトの名無しさん:2009/01/24(土) 17:33:00
そういやLokiとかいうオナニーライブラリはいまいずこ。
49デフォルトの名無しさん:2009/01/24(土) 17:37:03
>>46
手抜きしないで時間も少し変えろよw
コピペ修正ミスのバグだなw


C++ が具合悪いことは認めるが、型チェックが強力なだけで C よりマシ。
C++ コンパイラでエラーが出たソースを却下するとか、
C++ コンパイラでコンパイルするけど class, template, using, :: が検出されたら却下するとか、
妥協が欲しいところだ。

つーかトランスレータでいいから、Linus 自身がマトモだと思う言語を作ったらいい。
50デフォルトの名無しさん:2009/01/24(土) 17:40:38
>>49
言語が悪いんじゃないって言ってんのに話きかない奴だなおまえは
51デフォルトの名無しさん:2009/01/24(土) 17:40:40
Loki懐しいな…

正直、C++ではSTLとboost以外使うコードなんか見つけた日にゃ
rm -rfした挙句、HDD取り出してそれが記録されてた推定位置を
アイスピックでガリガリにして再起不能にし
それを落としたサイトのドメインでパケットフィルタでブロックして
全ブックマークからそのサイトにリンクしてるサイトを削除。
そこまでしないと気がおさまらない。
52デフォルトの名無しさん:2009/01/24(土) 17:44:20
boostのキモさは世界一。
53デフォルトの名無しさん:2009/01/24(土) 17:49:03
リナスはシステムが得意なプログラマーで、コンパイラとか処理系が得意なわけじゃない。

というか、コンパイラのエラーとか型チェックとかの文句言うなら素直にJavaかC#つかえ。
速度差も結局はJITあるからC++とまったく差はない。
というか、動的にコードの置き換えが起きたりする可変(アスペクト)の研究が進んでるから、
C++で書いたコードと最適化コンパイラが作ったネイティブのコードより逆に速い。
54デフォルトの名無しさん:2009/01/24(土) 17:50:12
でもboostが無いとC++ではまともに汎用的なコード書けないからなあ…
整数型のサイズ指定とか、C99仕様頼りになるのもなんか気持ち悪いし。

命名センスが???なのが多すぎるけど。
boost::filesystemなんてなんで再定義強要するような命名するのかわからん…
55デフォルトの名無しさん:2009/01/24(土) 17:51:40
>>53
嘘はダメ
56デフォルトの名無しさん:2009/01/24(土) 17:53:53
Linuxユーザーが気持ち悪いのも、リーナスの影響なんだな
57デフォルトの名無しさん:2009/01/24(土) 17:55:41
>>50
何言ってんだ。
ナマの C はヤダって言ってんだ。
58デフォルトの名無しさん:2009/01/24(土) 17:56:42
リーナスって色白で体温低そう
59デフォルトの名無しさん:2009/01/24(土) 17:57:12
2chねらー気質なのは確か
60デフォルトの名無しさん:2009/01/24(土) 18:22:29
配列のサイズを取得するマクロすら標準で用意されていない C/C++ は両方ともうんこ
61デフォルトの名無しさん:2009/01/24(土) 18:24:43
>>60
Cで書けばこういう奴が寄ってこなくなる訳か
こりゃ>>1に賛成せざるを得ないな
62デフォルトの名無しさん:2009/01/24(土) 18:33:33
コメントが書きやすくなったC、ぐらいの人が多いよ実際。
で、クラスとはそれを専門にしてる誰かが書いてくれる物で自分では書けない、と。
63デフォルトの名無しさん:2009/01/24(土) 18:37:47
>>61
毎回 sizeof / sizeof してるコードを見たら
お前もそう思うようになるよ。
64デフォルトの名無しさん:2009/01/24(土) 18:37:47
//スタイルのコメントは今はCにも取り入れられたぞ
65デフォルトの名無しさん:2009/01/24(土) 18:38:19
むしろ B に存在していた // を
C で削除したのが問題だったのだ。
66デフォルトの名無しさん:2009/01/24(土) 18:42:14
>>47
いや、最初にひどい言語だって言ってるじゃん。
67デフォルトの名無しさん:2009/01/24(土) 18:44:14
配列のサイズ取得って、Cなら普通終端データで渡すもんじゃないの?
うざいぐらいsizeof/sizeof使うとか、頭悪いの?
68デフォルトの名無しさん:2009/01/24(土) 18:47:08
だから、sizeof/sizeofのマクロすら標準で無いからウンコだと言ってるんだろ
69デフォルトの名無しさん:2009/01/24(土) 18:49:21
だからそんなもん必要になる場面が多い時はコードを見なおせと言ってるんだろ
70デフォルトの名無しさん:2009/01/24(土) 18:57:51
69の言う通りだな。
71デフォルトの名無しさん:2009/01/24(土) 19:04:24
sizeofってことは静的配列だろう。たかが静的配列のアクセスで
あちこちでsizeof/sizeofしてるってことは明らかにダメなコードだな。
後で動的配列に切り換えたとたん全部書き直しになるし。
72デフォルトの名無しさん:2009/01/24(土) 19:06:26
動的配列のサイズを取得するマクロすら標準で用意されていない C/C++ は両方ともうんこ
73デフォルトの名無しさん:2009/01/24(土) 19:06:28
>>70
いや、普通先頭アドレスとサイズを渡すだろw
74デフォルトの名無しさん:2009/01/24(土) 19:14:20
普通、配列のサイズは変数で持ち回るだろ
mallocはsizeof(要素の型) * 要素の数
でやって、あとは先頭と要素の数を持ち回る。

sizeof(配列)/sizeof(要素の型)で配列の要素数なんて、
学生の書くコードだよ。
プロがやったらちょっとそれはw
って感じ
あと//のコメントもCでやると素人臭いな。
VCSにコミットするまでに//のコメは消しとけよって感じ
75デフォルトの名無しさん:2009/01/24(土) 19:15:19
>>72
CはともかくC++の場合マクロで用意されてたら怒るけど。つvector
76デフォルトの名無しさん:2009/01/24(土) 19:16:46
プロ
プロ
プロ

VCS
VCS
VCS
77デフォルトの名無しさん:2009/01/24(土) 19:19:50
あれ?このスレにはちょっとレベル高かった?VCS
78デフォルトの名無しさん:2009/01/24(土) 19:22:00
相変わらず、レベル高けーな
79デフォルトの名無しさん:2009/01/24(土) 19:36:19
70>>
>>73
sizeof/sizeofで固定長の配列の要素数を得るコードをいっぱい書くなと言いたかったんだけどなぁ。

>>74
sizeof(配列の識別子)/sizeof(配列の識別子[0])の方がいいと思う。
古い人間だからかもしれないけど//は使わないなぁ。/* */と#if 0 #endif使っている。
80デフォルトの名無しさん:2009/01/24(土) 19:45:04
#if 0
/*
//の方が便利じゃん。
*/
#endif
81デフォルトの名無しさん:2009/01/24(土) 19:46:04
/* */ はともかく #if 0 #endif は頭が固すぎるな
82デフォルトの名無しさん:2009/01/24(土) 19:51:02
>>81
>#if 0 #endif は頭が固すぎるな
イマドキはどう書くんだい?
83デフォルトの名無しさん:2009/01/24(土) 19:53:29
>>82
/* */ しか使わん。今時コメントバイナリに埋め込む馬鹿コンパイラなんて使わんし。
84デフォルトの名無しさん:2009/01/24(土) 19:53:32
>>82
/// <summary>
/// いまどき
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public int func(int val)
{
}
85デフォルトの名無しさん:2009/01/24(土) 19:58:12
>>83
いまどきの人はコメントを含むコードもコメントで囲むのかね?
86デフォルトの名無しさん:2009/01/24(土) 20:01:52
いまどきの人はコメントがあるごとに区切ってコードだけをコメントアウトするんじゃないかね?
87デフォルトの名無しさん:2009/01/24(土) 20:02:03
>>85
なんか困る?
88デフォルトの名無しさん:2009/01/24(土) 20:03:19
>>87
どこが困るのかわからん奴はVBで遊んでろ
Cに近づくな
89デフォルトの名無しさん:2009/01/24(土) 20:07:26
なんだ説明できないのか。
90デフォルトの名無しさん:2009/01/24(土) 20:09:13
説明のヒントならとっくに出てるよ
おまえのスキルが低すぎて気づかないだけだ
91デフォルトの名無しさん:2009/01/24(土) 20:10:24
で、自分では説明できないんでしょ?
92デフォルトの名無しさん:2009/01/24(土) 20:23:02
>>75
お前は全ての配列を vector で動的に確保するというのか
93デフォルトの名無しさん:2009/01/24(土) 20:26:29
 どいつもこいつもバカばっか。
実力のある人だけが、C言語でプログラミングして、実力のない人は、さっさと他の言語にいってくれよ。
そうしないと、じじいの目からビームがでるよ。

 ネストコメントだと思うけど、いまだに入らないんだ。
自作言語で/+ +/をネスト可コメントにしたこともあった。
//(スラリコメントと名前つけている)は、C99からだからC89でもコンパイルが通るように使わないことにしている。
94デフォルトの名無しさん:2009/01/24(土) 20:28:43
ネストコメントなんてコメントアウトでしか使わないんだから #if 0 〜 #endif で良い
95デフォルトの名無しさん:2009/01/24(土) 20:31:10
>>93から異臭が漂ってるな
96デフォルトの名無しさん:2009/01/24(土) 20:32:26
>>92
>動的配列のサイズを取得する
97デフォルトの名無しさん:2009/01/24(土) 20:34:14
2chで段落の先頭にスペース入れてる人3年ぶりぐらいに見た。
98デフォルトの名無しさん:2009/01/24(土) 20:35:55
>>93
あんたと同類みたいな人も居るみたいなのに「どいつもこいつもバカ」とは適当すぎやしないか?
99デフォルトの名無しさん:2009/01/24(土) 20:39:04
>>96
動的配列に対しては配列数を取得するマクロなんて何ら意味が無いだろw
100デフォルトの名無しさん:2009/01/24(土) 20:40:57
いや、だからそういってるんだけど。
101デフォルトの名無しさん:2009/01/24(土) 20:42:02
いってねーよw
102デフォルトの名無しさん:2009/01/24(土) 20:43:20
なんだ、>>72 へのレスだったのか。
そりゃねーわ。
103デフォルトの名無しさん:2009/01/24(土) 20:43:29
文盲たん?
104デフォルトの名無しさん:2009/01/24(土) 20:47:55
とりあえず、リーヌスが腕のいい釣り師ってことはわかります。
105デフォルトの名無しさん:2009/01/24(土) 20:58:11
教祖様がPHP叩いてた時を思い出した
106デフォルトの名無しさん:2009/01/24(土) 21:03:37
C++ でまともなコードを書けない奴は
C でもまともなコードは書けない
107デフォルトの名無しさん:2009/01/24(土) 21:12:17
Cで芸術的で官能的なコードが書ける人は、C++でも書ける。
108デフォルトの名無しさん:2009/01/24(土) 21:12:36
>>106
ということは、C++ではまともなコードが書けない
といっているリーヌスはCでもまともなコードを書いてないと。

リーヌス涙目w
109デフォルトの名無しさん:2009/01/24(土) 21:15:44
C++ でまともなコードが書けない人=あまり勉強をしない人。
こういう奴は言語を問わずまともなコードは書けない。
110デフォルトの名無しさん:2009/01/24(土) 22:21:59
C++のクラスがCの構造体より優れてる所って何かある?

機能がいっぱい付いてるのは知ってる
その全てが複雑な動作と無駄なオーバーヘッドと不可解なバグの発生に貢献してるのも知ってる
111デフォルトの名無しさん:2009/01/24(土) 22:27:09
コンストラクタとデストラクタがあるだけで天と地の差がある。
112デフォルトの名無しさん:2009/01/24(土) 22:33:12
クラスのインスタンスはレジスタ渡しされる実装が多いから
Cの構造体を関数に渡して処理させるより速いぞ。
仮想関数だって結局関数ポインタなりswitchなりに変更しても
オーバーヘッドは極端に変わらん。
113デフォルトの名無しさん:2009/01/24(土) 22:34:16
デストラクタは、まあ確かに役に立つかな
C++プログラマがリソースの管理が出来ないのはデストラクタに頼りすぎだからだろうし

コンストラクタは罠の塊だろ
死んだ方がいい
114デフォルトの名無しさん:2009/01/24(土) 22:34:53
そんなだからCプログラマは変数の初期化忘ればっかするんだよ
115デフォルトの名無しさん:2009/01/24(土) 22:34:58
メンバ関数は時々便利かな。
演算子オーバーロードは絶対使っちゃダメだな。
継承?仮想関数?そういうのも無視、無視。
116デフォルトの名無しさん:2009/01/24(土) 22:35:26
>>110
C++には糞のような機能もすばらしい機能も山ほど付いているから、それらを取捨選択する能力が必要
117デフォルトの名無しさん:2009/01/24(土) 22:37:39
継承は純粋な悪であって、利点は存在しない

そのことにC++コミュニティもようやく気付き始めてコンポジション(笑)を推奨し始めてる
結局Cで遙か昔からやってきたことに戻ってきた
118デフォルトの名無しさん:2009/01/24(土) 22:37:40
>>113
C++は例外があるから
デストラクタなしにはまともにリソース管理できないんだよ。
119デフォルトの名無しさん:2009/01/24(土) 22:56:14
>>117
C++は静的型があるから
継承なしにはまともにポリモーフィズムできないんだよ。
120デフォルトの名無しさん:2009/01/24(土) 23:00:36
本当にLinusが言いたかったことはひとつ

RUBY最高

これマジ
121デフォルトの名無しさん:2009/01/24(土) 23:10:39
それはないわ
122デフォルトの名無しさん:2009/01/24(土) 23:29:07
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 
 そんなことよりyahooきっず「どんな''ジャンボ''が食べたい?」に投票しようぜwwwwwwwww
 ジャンボピーマンを一位にして餓鬼共を泣かせようwwwwwwwwww
 現在1位 yahooの工作開始までに2位のたこ焼きを突き放す

 http://kids.yahoo.co.jp/         _人人人人人_
                        >鶴職人募集中<
                         ̄ Y^Y^^Y^Y^ ̄

 ↓本スレ
 http://takeshima.2ch.net/test/read.cgi/news4vip/1232801214/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
123デフォルトの名無しさん:2009/01/25(日) 00:11:01
CStringのない環境で文字列扱えないっすよwww
124デフォルトの名無しさん:2009/01/25(日) 00:14:05
std::string 使えよ
125デフォルトの名無しさん:2009/01/25(日) 00:14:59
昔触ってた時は文字列クラスすらなかったな。
RTTI周りはちょっとは強化されたんだろうか。
126デフォルトの名無しさん:2009/01/25(日) 00:32:07
1行目と2行目って関係あるの?
127デフォルトの名無しさん:2009/01/25(日) 00:51:29
正直、STLとboostとQtがあれば出来ないことはないな…
コンソールからCGIからGUIまで汎用性&実用性最高水準で書ける言語なんてこれぐらい。
128デフォルトの名無しさん:2009/01/25(日) 01:13:50
>>127
若干、器用貧乏な気もする。

>>117
相変わらず継承を推しまくるJavaなんかよりはましだ。
129デフォルトの名無しさん:2009/01/25(日) 02:45:34
Linusは実は2chネラー、間違いない!
130デフォルトの名無しさん:2009/01/25(日) 03:48:38
>>129
あながち、OS論争の時もnetnewsでやってたし、2chの技術系板のさきがけみたいな
気はしないでもないな。
131デフォルトの名無しさん:2009/01/25(日) 06:04:57
>>117
継承が悪なら、基本ライブラリはなんで継承使いまくってるの?
132デフォルトの名無しさん:2009/01/25(日) 06:31:16
>>131
標準ライブラリを作っていた頃はよく分かっていなかった。
localeまわりのグダグダとかauto_ptrとかもそのせい。
133デフォルトの名無しさん:2009/01/25(日) 06:38:33
>>132
いや、Javaやsmalltalk、LL言語でも継承使いまくってるじゃん
それに最近出来てるライブラリも継承使いまくってるじゃん?こういうのも悪なの?
134デフォルトの名無しさん:2009/01/25(日) 07:21:52
底辺プログラマってさ、グラビアアイドルが騙されるのと同じだよな。
芸能事務所解雇と同時に事務所所有のマンションを追い出されたりして。
いつ自分もそうなるかわからないし、そうなったらかわいそうだよな。
135デフォルトの名無しさん:2009/01/25(日) 07:31:52
Linusの煽りの激しさと釣りテクニックの巧妙さを考えれば2CHで修業を
積んだと考えたほうが合理的だろうな。
136デフォルトの名無しさん:2009/01/25(日) 07:35:12
なんて情熱的な煽りをする奴なんだ!クレイジーだぜ!
などと思ったものだが、写メ見て幻滅した記憶がある。
ただのヲタじゃん。
137デフォルトの名無しさん:2009/01/25(日) 08:59:54
こいつってマイクロカーネルも批判してたよね。
138デフォルトの名無しさん:2009/01/25(日) 09:02:36
誰このLinusとかいうコテハンは?
139デフォルトの名無しさん:2009/01/25(日) 09:07:04
>>47
C++&COMでドライバ作るわけだが
140デフォルトの名無しさん:2009/01/25(日) 09:32:33
>>137
実際マイクロカーネルはクソだったじゃん
141デフォルトの名無しさん:2009/01/25(日) 09:33:48
ゲームをコマ落ち無しでしたいアホが多すぎるからだろ
142デフォルトの名無しさん:2009/01/25(日) 09:39:51

このスレには >>135>>136 など、高いユーモアのセンスを持った
人間が沢山いるな。
143デフォルトの名無しさん:2009/01/25(日) 09:43:47
デバイスドライバ作っても給料は安いままだよな・・・
何の技術も持ってない奴よりも俺の年収の方が低いなんて・・情けないよな・・・
144デフォルトの名無しさん:2009/01/25(日) 09:47:35
>>143
ヒント: 需要と供給
145デフォルトの名無しさん:2009/01/25(日) 10:04:19
>>143
何の能力も無いまま広告代理店だの株屋だのに勤めてる奴らは俺らより年収高いぞ。
歴史に残る天才が貧乏だったケースは無数にある。
年収=能力じゃないんだよ。
俺らはポインタも配列も怖くない、メモリリークなんていうバカなバグは出さない、
そこらの駆け出しプログラマとは格段にレベルが違う、その矜持だけでいいじゃないか。
146デフォルトの名無しさん:2009/01/25(日) 10:31:39
確かにヘボな奴がメインでC++で組む位ならCでやらせるな
C以上の罠てんこもり言語だし
147デフォルトの名無しさん:2009/01/25(日) 11:26:59
linusの言いたい事は解る。
自分の理解してる機能だけ使えばいいのにな。

>>143
日本のプログラマは給料安くてやってられね。
使える友人増やして、会社起こすしかないよ。
148デフォルトの名無しさん:2009/01/25(日) 11:27:21
どうでもいいけどマ板でやって欲しいな
149デフォルトの名無しさん:2009/01/25(日) 11:34:15
どうでもいいことなら黙ってろよ
150デフォルトの名無しさん:2009/01/25(日) 12:00:44
>>143
金を得るという技術が無いだけでしょ?

金が欲しいならそっちの技術も磨けばいいじゃん。
151デフォルトの名無しさん:2009/01/25(日) 12:05:54
Dだろ
152デフォルトの名無しさん:2009/01/25(日) 12:40:22
C++とWinに手を出したら人間駄目になるよ。
麻薬だよ本当。
153デフォルトの名無しさん:2009/01/25(日) 12:44:56
Objective-C & Mac OS X だよな。
154デフォルトの名無しさん:2009/01/25(日) 12:59:34
Objective-Cなんてドうんこだろ
155デフォルトの名無しさん:2009/01/25(日) 13:06:38
>>154
どこの部分が悪いか言える?
156デフォルトの名無しさん:2009/01/25(日) 13:06:45
>>150
そっちの技術に興味がないけど金は欲しい

…ってのが大半なんだよな。エンジニアって…
157デフォルトの名無しさん:2009/01/25(日) 13:12:36
どうでもよくないのでマ板でやって欲しいな
158デフォルトの名無しさん:2009/01/25(日) 13:14:02
>>155
構文が汚い
159デフォルトの名無しさん:2009/01/25(日) 13:40:20
C言語って、stlとかboostとか使えんの?
160デフォルトの名無しさん:2009/01/25(日) 13:41:14
つかえないよ
161デフォルトの名無しさん:2009/01/25(日) 13:45:07
識別子としてなら使えるよ
162デフォルトの名無しさん:2009/01/25(日) 13:47:08
#include <stdio.h>

int main(void) {
 int stl = 0;
 int boost = 0;
 printf("%d, %d\n", stl, boost);
 return 0;
}
163デフォルトの名無しさん:2009/01/25(日) 14:26:24
クリティカルなところはC
普通はLL言語つかってほうがいいわ。
164デフォルトの名無しさん:2009/01/25(日) 14:47:35
全然関係ない個人的な主観の話でいうと、LL言語という表記がキモい。
見てると頭痛が痛くなってくる。
165デフォルトの名無しさん:2009/01/25(日) 14:49:57
病院行けよ
166デフォルトの名無しさん:2009/01/25(日) 14:51:30
例えも理解できないのかわかってて返してるのか
167デフォルトの名無しさん:2009/01/25(日) 14:54:32
理解を分かってるよ。
LLかLW言語と言えってことだろ。
168デフォルトの名無しさん:2009/01/25(日) 14:57:08
そういうくだらない所にこだわって
いちいち突っ込み入れて話を中断させる奴って小物ばっかりなんだよな。
169デフォルトの名無しさん:2009/01/25(日) 14:59:58
よしじゃぁウォーニングとワーニングについて議論

しなくていいな
170デフォルトの名無しさん:2009/01/25(日) 15:01:08
じゃあ、「C言語」で。
171デフォルトの名無しさん:2009/01/25(日) 15:02:19
そのまえに「リナックス」と「ライナックス」と「リーヌクス」をハッキリさせようぜ。
172デフォルトの名無しさん:2009/01/25(日) 15:16:56
>>168
それはお前が大物と話す機会のある立場に居なくて、
且つしょっちゅう言葉を間違えて突っ込まれる人生送ってるだけだろ。
173デフォルトの名無しさん:2009/01/25(日) 15:17:56
大物(笑)
174デフォルトの名無しさん:2009/01/25(日) 15:26:35
>>173
脊髄反射乙
175デフォルトの名無しさん:2009/01/25(日) 15:26:40
>>160
Boost.Preprocessorは使えると思う。
176デフォルトの名無しさん:2009/01/25(日) 15:59:53
待て待て、charはチャーなのかキャラなのかシャーなのかで
177デフォルトの名無しさん:2009/01/25(日) 16:08:01
シャーだろjk
178デフォルトの名無しさん:2009/01/25(日) 16:22:38
シャアの方がかっこいい
179デフォルトの名無しさん:2009/01/25(日) 16:47:56
gitのすばらしいコードってどこでみれるかな
180デフォルトの名無しさん:2009/01/25(日) 19:01:56
ちゃー・アズナブル
181デフォルトの名無しさん:2009/01/25(日) 19:08:20
でも以下の事実は認めざるを得ないな。

・Linuxは世界で唯一成功したといえる非商用OS
・gitはRCSのなかで一番快適
・C++製アプリは規模だけでかくて質の悪いものが多い
 (採用実績はあっても成果実績が伴なっていない)
182デフォルトの名無しさん:2009/01/25(日) 19:22:30
>>181
> ・gitはRCSのなかで一番快適
ほんとかね?
試してみようかね。

> ・C++製アプリは規模だけでかくて質の悪いものが多い
てめこの、ゲーム屋なめんな。
183デフォルトの名無しさん:2009/01/25(日) 19:37:58
MercurialなんかPythonだし、バージョン管理システムなんて、diffとか一部の思い処理意外は
LLで書いても十分って気もするけど。
184デフォルトの名無しさん:2009/01/25(日) 20:32:32
>・C++製アプリは規模だけでかくて質の悪いものが多い

>>33

確かに
185デフォルトの名無しさん:2009/01/25(日) 23:09:30
確かに。
そもそもC++で書いてると、無駄に規模が大きく成ってしまう
気がする。言語版Multicsの再失敗だな。
186デフォルトの名無しさん:2009/01/25(日) 23:37:51
COOLとかPP使えば
C++もCも大して変わらない。

結局、
作法が統一されてるC++で書いたほうが楽でスマート。
187デフォルトの名無しさん:2009/01/25(日) 23:45:39
http://www.sage-p.com/process/cool.htm

COOLがC++かわらないって、それはないだろ。
188デフォルトの名無しさん:2009/01/25(日) 23:47:55
this をうっかり使うと C++ から使えないので
self にした方が良い
189デフォルトの名無しさん:2009/01/25(日) 23:56:10
いや、一人で全部完成させて一生一人でメンテするならC++でも何でもいいって。
190デフォルトの名無しさん:2009/01/26(月) 00:01:32
ここで大胆ながらも核心をついた発言をしてしまうと
HSP最強、ということになりかねない流れだな。
191デフォルトの名無しさん:2009/01/26(月) 00:03:05
そもそも技術者育てる力も無いのに
初心者歓迎!なんてやってる会社が多いのが問題。
そう言う所で育ったPGはひどいことになる。
192デフォルトの名無しさん:2009/01/26(月) 00:31:32
その初心者にC++チーム組ませて地獄をみたプロジェクトならぬディスジェクトが山のように…
193デフォルトの名無しさん:2009/01/26(月) 03:28:06
XtとかMotifとかを生で触った事があって、Cでオブジェクト指向GUIプログラミングを
をやると、どんだけ酷い目に遭わされるか知ってると、C++への感慨も
変わってくると思う。
194デフォルトの名無しさん:2009/01/26(月) 11:25:07
195デフォルトの名無しさん:2009/01/26(月) 11:28:25
>>194
status/1148031371
196デフォルトの名無しさん:2009/01/26(月) 14:18:36
なんかウンコ漏らしちゃったよ(´ω`)
197デフォルトの名無しさん:2009/01/26(月) 14:57:28
ウンコはウンコしない
198デフォルトの名無しさん:2009/01/26(月) 15:13:24
>>191-192
あるある!!!
199デフォルトの名無しさん:2009/01/26(月) 15:16:28
C++でGUIアプリの開発は悲惨の一言だな。
言語仕様が硬直的でまともにイベントディスパッチできねぇし。
200デフォルトの名無しさん:2009/01/26(月) 15:19:11

ゲーム開発以外はもう全部Cでいいよ。
201デフォルトの名無しさん:2009/01/26(月) 17:30:25
ゲームこそCで十分だろ。アセンブラでも良いぞ。
202デフォルトの名無しさん:2009/01/26(月) 17:41:06
>>193
ノシ
「こんないーもんあるじゃねーか!C++使わせろよ!」
と思った。
203デフォルトの名無しさん:2009/01/26(月) 20:05:32

マフィアなどが横行する裏の世界では、発見されるとまずい遺体を硫酸プールに
沈めて溶かし、証拠を消すなどという噂話がありますが、実際に科学薬品で遺体を
処理したことがあるという人が警察に捕まったそうです。

詳細は以下から。


BBC NEWS | Americas | Mexico man 'dissolved 300 bodies'

メキシコ警察に逮捕された男・Santiago Mezaは通称「シチュー・メーカー」。Mezaは
薬を扱うギャングのために、対立するギャングの遺体を週600ドル(約5万円)の
賃金で苛性ソーダを使って処理したとのこと。処理した遺体は300人にもなるそうです。

10年以上遺体処理を続け「何の感情もなかった」と話すMeza


Mezaは犠牲者の遺族と話す機会があるならば「謝罪したい」と述べています。
アメリカとの境界に位置する都市ティフアナでは、ドラッグを巡る争いで700人以上の
死者が出ており、メキシコ軍はMezaの言っている話は真実であると考えているそうです。

ブラック・ラグーンに出てくる始末屋ソーヤーのような人物ですね……。

http://gigazine.net/index.php?/news/comments/20090126_dissolve_300_bodies/
204デフォルトの名無しさん:2009/01/26(月) 20:08:13
>>203
>科学薬品
・・・
205デフォルトの名無しさん:2009/01/26(月) 22:06:26
206デフォルトの名無しさん:2009/01/26(月) 22:24:43
>>205
自分らは陰口を書くのはOKってスタンスなんだから、同じ土俵にたてとか、2chどうこう言うなって感じだよなぁ。
しかも>>194とか、ほぼスルーされてるのに。
まあ、どうでもいいけど。
207デフォルトの名無しさん:2009/01/26(月) 22:28:28
>>206
かまってちゃんを相手にするなよ・・・
208デフォルトの名無しさん:2009/01/27(火) 04:18:33
LinuxにはHSPのような登竜門的な言語がないから
いつまでたってもフリーソフターが育たずにWinに遅れをとるんだよ…
209デフォルトの名無しさん:2009/01/27(火) 06:14:06
>> フリーソフター
GNUの概念と真っ向から反するからそりゃね
210デフォルトの名無しさん:2009/01/27(火) 06:22:58
>>208
HSPってwww
211デフォルトの名無しさん:2009/01/27(火) 06:23:15
>>207
「どうでもいい」ことを一々嫌みったらしく書き残していく>>206もかまってちゃんだから、
相手にしないほうがいいよ。
212デフォルトの名無しさん:2009/01/27(火) 08:58:32
cは金にならないからしかたない
213デフォルトの名無しさん:2009/01/27(火) 09:10:44
なるよ
もっと視野を広げろよ
214デフォルトの名無しさん:2009/01/27(火) 12:27:36
その点C++はトラブルが出つづけるので
ずっと金になるというのはあるな
まぁ誰かは損してるわけだが
215デフォルトの名無しさん:2009/01/27(火) 15:00:06
バージョン決め打ちできるところは良いなあ
216デフォルトの名無しさん:2009/01/27(火) 21:11:25
フリーソフターって初めて聞く用語だけど、一般的なの?
217デフォルトの名無しさん:2009/01/27(火) 21:39:15
略してフリーターってよく言うじゃん。
218デフォルトの名無しさん:2009/01/27(火) 21:41:14
>>206
はてな村やtw村での生活が長いと
ああいう勘違いしちゃうのかねえ

回り見えてないねえ
219デフォルトの名無しさん:2009/01/27(火) 21:59:57
>>208
perl(のようなもの)とか、shスクプリトとか。
220デフォルトの名無しさん:2009/01/27(火) 22:16:17
>>193
XtとかMotif触ったことないけど、kernelのファイルシステムや
ネットワークプロトコルスタック程度の使い方なら、Cのオブジェクト指向
っぽいプログラミングで十分だと思う。

逆にC++みたいなレイヤを一つはさむと、逆アセンブルしたコードが
Cに比べるとわけわかめなんで、panicしたとき調査しずらい。
221デフォルトの名無しさん:2009/01/27(火) 22:20:18
>>199
それは、入力受け付けるのにコールバック関数を必要とするOSに、
薄いフレームワークをかぶせてるからであって、言語のせいではないと思われ。
222デフォルトの名無しさん:2009/01/27(火) 22:41:53
>>206
自分でスレをtwに晒しておいて、自分のtwの発言が2chに晒されると「同じ土俵に立て」とか頭おかしいな。
223デフォルトの名無しさん:2009/01/27(火) 22:43:02
>>219
なに、バールのようなものだと?
224デフォルトの名無しさん:2009/01/28(水) 00:26:42
>>220
XmToggleButtonGadgetGetState()なんて関数名見たら、それだけでC++使いたくならない?w
225デフォルトの名無しさん:2009/01/28(水) 00:52:05
むしろメソッドもネームスペースも無いからC使う。
一目ですべて分かる。
226デフォルトの名無しさん:2009/01/28(水) 02:03:37
それじゃC以外使えないよ。
227デフォルトの名無しさん:2009/01/28(水) 10:59:47
>>224
しかも Gadget と Widget で関数名違うしな。
で、なんかの派生クラス作ろうとしたら
vtable 自分で管理しなきゃいけなくて、益々C++ が欲しくなる。
228デフォルトの名無しさん:2009/01/28(水) 11:02:25
ん、なんかごっちゃになってる。
× vtable
○ クラス構造体の関数ポインタ
229デフォルトの名無しさん:2009/01/28(水) 11:11:41
Cはアセンブリ言語の違いを吸収するが、

C++はオブジェクトシステムの違いを吸収できない、と
230デフォルトの名無しさん:2009/01/28(水) 12:19:59
>>221
C++ってdelegateはどうやって実現してるの?
231デフォルトの名無しさん:2009/01/28(水) 12:32:24
232デフォルトの名無しさん:2009/01/28(水) 13:15:28
化石燃料ですね、わかります。
233デフォルトの名無しさん:2009/01/28(水) 16:45:22
Союз Советских Социалистических Республик
234デフォルトの名無しさん:2009/01/28(水) 17:06:33
>>230
C#的なdelegateなら、適当なオブジェクトを受け渡し、
そのオブジェクトの特定のメンバ関数(典型的にはoperator ()という名前の関数)を呼ぶという取り決めでやり取りする。
ようするにダックタイピングが最近の流れ。

昔からある奴だと、仮想関数使ったりマクロで振り分けたりというのが根強い。
235デフォルトの名無しさん:2009/01/28(水) 18:16:26
関数ポインタとマップ
236デフォルトの名無しさん:2009/01/28(水) 18:25:33
>>235
Windowsだとコールバック関数にこちらから1つ値を渡せるから、
そこにオブジェクトへのポインタを仕込めるのでマップの出番は無いんだけど、ほかはそうでもない?
237デフォルトの名無しさん:2009/01/28(水) 23:13:04
>234,230
オブジェクトへのポインタと、メンバ関数へのポインタでもできるかと。

ちなみにメンバ関数ポインタと言うのはこーいうの。

// メンバ関数ポインタ
void (CHoge::*pFunc)() = CHoge::func;
// .* 演算子でのアクセス
(obj.*pFunc)();

// ->* 演算子でのアクセス
(pObj->*pFunc)();

.* と ->* は . や -> と別の演算子として扱われ、
個別にオーバーライド可能ってのもポイント。
238デフォルトの名無しさん:2009/01/28(水) 23:29:28
普通はBoost/TR1のbindとfunctionでラップして使うけどな。
そういやBoostにはSignalsなんてのもある。
239デフォルトの名無しさん:2009/01/29(木) 06:13:11
>>238
>>1でそのboostもstlも一緒に馬鹿されてる
240デフォルトの名無しさん:2009/01/29(木) 06:58:29
boostもstlもパラノイアを感じる
どうしてそこまでしてC++を使おうとするのか分からない
241デフォルトの名無しさん:2009/01/29(木) 09:47:15
case insensitive な人が何か喚いている。
242デフォルトの名無しさん:2009/01/29(木) 12:32:52
STLは素晴らしく便利だと思うが。
ていうかSTLを使わないC++はかなりウンコ。それならCでキレイに書いたほうがいい。
243デフォルトの名無しさん:2009/01/29(木) 12:54:28
C++のiostreamを考えた奴は、アホだと思う。

後発の言語で、iostreamをパクったのって有るのか?
244デフォルトの名無しさん:2009/01/29(木) 12:57:36
Cは言語機能がちょっと貧弱すぎるせいで、ぐじゃぐじゃなマクロで
取り繕おうとしてしまうケースがしばしば見られる気がする

マクロはウンコ
245デフォルトの名無しさん:2009/01/29(木) 13:05:34
>>240
Cは貧弱で、
プロジェクトで作ったライブラリは顧客の所有物となれば、次のプロジェクトで流用できない。
別々のプロジェクトから集まったチームのためにvectorやらなんやら設計しなおすのもバカらしい。
246デフォルトの名無しさん:2009/01/29(木) 13:05:40
C++をjavaとかC#と比べる奴はIT土方。
みんながみんな開発効率重視の使い捨てPGじゃない。
とりあえずC++の設計と進化くらいは流し読みしとけ。
247デフォルトの名無しさん:2009/01/29(木) 13:09:57
>>243
あれは酷い。
248デフォルトの名無しさん:2009/01/29(木) 13:22:54
C++はいわゆる「C++スタイル」で書くことに結構こだわる俺でも
iostream系だけは使ってない。
249デフォルトの名無しさん:2009/01/29(木) 13:46:15
iostreamは、技術デモとしては面白いよね、あはは ってレベル。
標準ライブラリとして紛れ込んでるのは、たぶん、事務処理ミス。
250デフォルトの名無しさん:2009/01/29(木) 14:16:48
genericなライブラリもdelegateも言語仕様として素直にサポートすりゃいいのに
何でもかんでもtemplateで無理やりやろうとするところがバカっぽい。
251デフォルトの名無しさん:2009/01/29(木) 14:17:08
ATLで十分
252デフォルトの名無しさん:2009/01/29(木) 14:36:50
古いC++の本読むとクラスこそC++の光、継承こそC++の真髄みたいに書かれているのに
ちょっと前に出版されたC++ Cording Standardsには
なるべく継承はヤメれ、friendもほどほどにねみたいに書かれてる。
253デフォルトの名無しさん:2009/01/29(木) 15:38:35
friend なんかいらないだろ。
254デフォルトの名無しさん:2009/01/29(木) 15:44:55
というか、そこまで継承を使う必要に迫られたことがない。
オブシコの真髄はコンポジットにこそある、
とC++触りはじめて3日ぐらいで気付いたっけなあ。
これぐらいのセンスがないとC++はむずかしいね。
255デフォルトの名無しさん:2009/01/29(木) 20:51:36
なるほどねぇ、自分は本に書かれたままに受け取るしか出来ないからC++には向いてないかな。
でも、C++面白いんだよね、純粋に。
256デフォルトの名無しさん:2009/01/29(木) 21:18:30
Cのコンパイラより
C++のコンパイラの方が
なんか速そうな感じがする。
257デフォルトの名無しさん:2009/01/29(木) 21:18:57
C++は、要らん苦労を背負っときながら、でもこうするとちょっと楽だよね
っていう感じで、3歩下がって2歩進むことばかりに見える
258デフォルトの名無しさん:2009/01/29(木) 21:20:50
259デフォルトの名無しさん:2009/01/29(木) 21:53:53
>>243
javaとc#でなんか同じような名前のがあったような。
260デフォルトの名無しさん:2009/01/29(木) 21:55:54
いやいや、名前にStreamって付くクラスがあるだけ。
どっちも演算子で入出力なんてやらないよ。
261デフォルトの名無しさん:2009/01/29(木) 22:05:20
i/ostringstreamはかなりイケてると思うんだがどうよ。
262デフォルトの名無しさん:2009/01/29(木) 23:32:32
演算子を使ってるのはべつにいいけど、書式指定の使いにくさがどうにも。
263デフォルトの名無しさん:2009/01/29(木) 23:35:26
printf 風の指定もできればいいのに
boost なしで
264デフォルトの名無しさん:2009/01/30(金) 00:11:28
うん、俺もout系のstreamは、sprintfというのが用意してあったらかなり違ったと思うね。
scanf系のアドレス渡しとかフォーマットミスが嫌われた要因の一つだろうから
in系はともかくとしても。

あと、Cが文字列型を持たないのを引きずって、文字列の扱いが中途半端だったね。
もちろん、C++がAT&Tで生まれた直後から多数の「文字列class」が生まれてしまったのも原因だけど
「静的なstring」を用意することが出来ない。
だから、f(const string&)を呼び出すときにf("abc")とすると
毎回コンストラクタとデストラクタが呼ばれるってのもどうもね。
char*をやめて全部stringにしろといわれても、外部やAPIとのやりとりではそうも行かず。
265デフォルトの名無しさん:2009/01/30(金) 00:14:23
普通イテレータ使うだろ。
266デフォルトの名無しさん:2009/01/30(金) 00:28:33
ま、あのJavaでさえ、途中からとはいえprintf()様の軍門に下ったからな。
267デフォルトの名無しさん:2009/01/30(金) 00:31:57
printfは神
268デフォルトの名無しさん:2009/01/30(金) 00:33:34
printf っぽいものでも
型安全にする事は可能だからな。
ostream は今からでもそれをサポートすべき。
269デフォルトの名無しさん:2009/01/30(金) 00:47:23
もう誰も新しい整形方式でprintfを倒そうという愚かな野望を抱かなくなったこと
結果としてprintfの優秀さが再認識されて今多くの言語でサポートされて使えること

これらがiostreamの惨めな失敗によるものなのだとしたら
あの糞ライブラリにも意味があるのかもしれない
270デフォルトの名無しさん:2009/01/30(金) 00:50:53
>269
不遜なC#がprintf()様に微妙に反抗してます。
271デフォルトの名無しさん:2009/01/30(金) 01:04:00
c#のあれは最初からprintfの軍門に下っている
iostreamのようにprintfへの挑戦者ではないだろう
272デフォルトの名無しさん:2009/01/30(金) 01:14:59
printf対ostreamは天地の差だけど
scanf対istreamならどっこいどっこいだと思う
273デフォルトの名無しさん:2009/01/30(金) 01:57:02
というか、上級のC++グラマでC++そのまんま使ってる奴なんているか?
そのクラスだと独自マクロ作ってC++なんかドライバ扱いなのが普通だと思ってたが。
274デフォルトの名無しさん:2009/01/30(金) 02:14:13
つまり273は上級だと
275デフォルトの名無しさん:2009/01/30(金) 02:25:51
276デフォルトの名無しさん:2009/01/30(金) 06:07:10
>>275
Seasoned Hacker

% cc -o a.out ~/src/misc/hw/hw.c
% a.out
Hello, world.

ワロタw
277デフォルトの名無しさん:2009/01/30(金) 11:52:04
Cコンパイラってなんであんなコンパイルが軽いの?
手抜きしてそう
278デフォルトの名無しさん:2009/01/30(金) 12:17:23
企業に例えるとCは昔のGoogleでC++は今のGoogle
279デフォルトの名無しさん:2009/01/30(金) 12:33:57
>>277
C++がLALRでないからじゃなかったっけ
280デフォルトの名無しさん:2009/01/30(金) 14:50:45
構文解析の複雑さくらいじゃ、体感出来る程の違いは生まれないんじゃね?
テンプレートの実体化とかオブジェクト(vtable)のレイアウトを決定するのに時間がかかりそう
281デフォルトの名無しさん:2009/01/30(金) 14:55:29
新人医者有受研修、教授被教尿道挿管。
医者挿入四苦八苦、多苦労後無事挿入。
然教授苦笑曰新人、「汝挿入場所相違也」。
医者赤面至急欲除、尿管微動不得取外。
医者必死謝罪患者、然患者喜々誤挿入。
教官不思議聞患者、曰「快感多旦那以上」。
282デフォルトの名無しさん:2009/01/30(金) 16:44:44
>>278
なんか妙に納得。

昔のGoogleは素気ないがCoolだったな。
いまじゃすっかりチンドン屋になってしまったが。
283デフォルトの名無しさん:2009/01/30(金) 16:48:51
>チンドン屋

ヤホーほどじゃない。
284デフォルトの名無しさん:2009/01/30(金) 17:13:34
経済学的にはC++のほうが良い言語なのかなw
285デフォルトの名無しさん:2009/01/30(金) 17:18:46
経済学的に考えると、
世の中の機器からチンドン屋になっちゃったんだから、
チンドン言語で書くのが効率的じゃね?
286デフォルトの名無しさん:2009/01/30(金) 17:23:11
自然な思考で当たり前のプログラミングを〜Bjarne Stroustrup氏との対話〜
http://codezine.jp/article/detail/3370
287デフォルトの名無しさん:2009/01/30(金) 20:35:43
288デフォルトの名無しさん:2009/01/31(土) 00:58:57
C++からCにいって気付いたこと。

デフォルト引数も関数の多態性もないせいで
ライブラリの関数とかで無駄な引数いっぱい…
不使用の引数でもわざわざダミー変数用意しなきゃならん。
Xlibとかめんどい。
289デフォルトの名無しさん:2009/01/31(土) 01:32:05
欠点が明確なのは、欠点がなんだかよくわからないよりずっとましだ。
290デフォルトの名無しさん:2009/01/31(土) 01:55:34
>>288
君はC++にも不適格だと思うぞ
291デフォルトの名無しさん:2009/01/31(土) 01:59:44
なこたあないん。
292デフォルトの名無しさん:2009/01/31(土) 02:08:28
C++プログラマって、どこまでも行っても下がいる
言語仕様がクズを生みやすいってことだと思う
293デフォルトの名無しさん:2009/01/31(土) 02:09:49
それはCでも同じ
294デフォルトの名無しさん:2009/01/31(土) 08:41:24
>>288
君は「C++の設計と進化」を読んだ方がいい
295デフォルトの名無しさん:2009/01/31(土) 10:31:18
変数宣言は一番上だけってのがきもい
296デフォルトの名無しさん:2009/01/31(土) 10:35:09
>>295
kwsk

まさか、ソースコードの一番上で宣言するような言語があるのか?
297デフォルトの名無しさん:2009/01/31(土) 10:42:02
int func(a, b, c)
int a;
float b;
void* c;
{
 return a+(int)b+(int)*c;
}
298デフォルトの名無しさん:2009/01/31(土) 11:05:15
>>295
ヒント: スコープ
299デフォルトの名無しさん:2009/01/31(土) 11:12:19
>>297
なにこれ、釣り?
AT&Tでは、そんな書き方できたんだ、知らなかったなぁ。
>>void* c;
>>{
>> return a+(int)b+(int)*c;
参考になりますた。C言語を使いこなせない人は、ここに立ち入り禁止ね。
C++を使う人も来ないでください。気持ちが悪いです。
300デフォルトの名無しさん:2009/01/31(土) 11:19:03
>>299
お前が来なきゃいい。
301デフォルトの名無しさん:2009/01/31(土) 11:30:05
「C++プログラマはウンコ。寄ってくるな」
302デフォルトの名無しさん:2009/01/31(土) 11:31:58
それはLinusが言ってるだけで、このスレに来ることは問題ないから。
303デフォルトの名無しさん:2009/01/31(土) 11:35:15
「C++プログラマは犯罪者。消えろ」
304デフォルトの名無しさん:2009/01/31(土) 13:11:16
*(int*)c じゃないのか?
305デフォルトの名無しさん:2009/01/31(土) 13:12:48
C++プログラマをいじめすぎ
306デフォルトの名無しさん:2009/01/31(土) 13:12:52
それでいいよ。
307デフォルトの名無しさん:2009/01/31(土) 14:07:16
追い詰められたC++はLispを取り込んで最終形態に・・・
308デフォルトの名無しさん:2009/01/31(土) 15:14:07

C++ の作者にセンスがなかったと言わざるを得ない。
作者が元凶であった以上、C++ は元々消えていく運命にあったのだね。
309デフォルトの名無しさん:2009/01/31(土) 15:18:41
Objective-Cの糞構文を見たら、C++の構文は神に見えるよ
310デフォルトの名無しさん:2009/01/31(土) 15:30:20
>>294
そういう問題でもない。
311デフォルトの名無しさん:2009/01/31(土) 15:43:46
>>268
>printf っぽいものでも
>型安全にする事は可能だからな。
どんなふうにすればいいの?
312デフォルトの名無しさん:2009/01/31(土) 15:46:55
>>220
>逆にC++みたいなレイヤを一つはさむと、逆アセンブルしたコードが
>Cに比べるとわけわかめなんで、panicしたとき調査しずらい。
わざわざご自分の無能をおさらしにならなくとも
よろしいのに。
313デフォルトの名無しさん:2009/01/31(土) 15:47:31
int i; float f; MyClass c;

printf("%(int) %(float) %(MyClass)\n", i, f, c);
314デフォルトの名無しさん:2009/01/31(土) 15:57:04
それどこのオレオレコンパイラの仕様?
315デフォルトの名無しさん:2009/01/31(土) 16:02:55
>>309
どっちも糞
316デフォルトの名無しさん:2009/01/31(土) 16:07:05
HSP……
こうなってはもうHSPしかないのか……
317デフォルトの名無しさん:2009/01/31(土) 16:09:11
printfの安全性は、コンパイラが賢くなる事で解決。
318デフォルトの名無しさん:2009/01/31(土) 16:13:03
プログラマブルプログラマはCを使う。
319デフォルトの名無しさん:2009/01/31(土) 16:14:53
C++じゃないけど、正規表現みたいにprintf書式もリテラルを作れればいいのに、と思う。
320デフォルトの名無しさん:2009/01/31(土) 16:17:54
そもそも、printfとstd::coutって実質的に何が違うんだろ?
std::coutで特に記述が簡素化したとも思えないんだけど。
何を思ってこんなもん作ったんだ?
321デフォルトの名無しさん:2009/01/31(土) 16:23:33
オペレーターオーバーロードをしたかっただけだろ。
322デフォルトの名無しさん:2009/01/31(土) 16:26:47
>>320
long longが%I64dか%lldかで悩む必要なく、doubleに%lfを使うコードを見てうんざりする必要がなくなった。
ただ、それを実現したいだけなら、Javaみたいにprint(x)でいいわけなんだけど。
323デフォルトの名無しさん:2009/01/31(土) 16:44:22
おーできない君が群がるスレですな
結構活気ありますねw

324デフォルトの名無しさん:2009/01/31(土) 16:46:13
ですな
325デフォルトの名無しさん:2009/01/31(土) 16:47:02
>>320
可変長引数を間違えるうんこを、救済したかったんだろ。
案の定あらゆる所で漏らしまくる、うんこ野郎が集まってきたとw
メモリの管理も出来ないゴミを前提にしてるし仕方ないさ
326デフォルトの名無しさん:2009/01/31(土) 16:50:34
というかマ版用スレじゃんこれ
327デフォルトの名無しさん:2009/01/31(土) 17:06:12
>>320
オブジェクト指向のデモ的な側面があったんだろうね

「ほら、オブジェクト側に処理を任せちゃえば、何も考えないですむんですよ」
「なるほど、楽ですね。でも出力幅とか書式指定したくならないですか?」
「実際のプログラミングではそうだろうね」
「そうすると結局手間は変わらない、むしろ面倒になるのでは?」
「ですよね。まあ、こんなことも出来ますよ、というデモですからねー」
328デフォルトの名無しさん:2009/01/31(土) 17:06:13
>>323
出来たつもりになってるうんこ君を笑うスレです
329デフォルトの名無しさん:2009/01/31(土) 17:14:04
俺はデキルスレになってるのが笑える
330デフォルトの名無しさん:2009/01/31(土) 17:44:10
iostreamはいい加減に黒歴史化してほしい。
新しい入出力ライブラリ作ってさ。
331デフォルトの名無しさん:2009/01/31(土) 17:53:25
C++って仕事でチーム開発で使うとCベースより問題が発生することがほとんどなんだが
これを言うとキャリアの浅いやつや責任持ったことのない奴ほど理解できないんだよな。
ここでこういうこというやつは、よっぽど教育がなされてる環境にでもいるのかな。
332デフォルトの名無しさん:2009/01/31(土) 17:56:14
そりゃあんた、できないと思われることを嫌う連中は理解したがらないよ。
ここで言っている方は、挫折経験でもあるのだろうし。
333デフォルトの名無しさん:2009/01/31(土) 18:20:20
できないと思われたくないならやさしいと思っているCを提案されれば飛びつくだろ。
でもそうならない。
334デフォルトの名無しさん:2009/01/31(土) 18:26:28
最先端の現場ではHaskell使っても統一とれるんだから
指揮能力の問題だろうな。
335デフォルトの名無しさん:2009/01/31(土) 18:38:18
Cはやさしいかなぁ?
VBでいいって言われるならともかく。
336デフォルトの名無しさん:2009/01/31(土) 18:48:23
さすがにそのレベルは除外
337デフォルトの名無しさん:2009/01/31(土) 18:49:59
最先端の現場ってどこだよw
338デフォルトの名無しさん:2009/01/31(土) 18:58:28
最戦端の現場
339デフォルトの名無しさん:2009/01/31(土) 18:59:05
340デフォルトの名無しさん:2009/01/31(土) 19:07:03
これが?
341デフォルトの名無しさん:2009/01/31(土) 19:15:17
初心者から雇う癖に教育しないからそうなる
342デフォルトの名無しさん:2009/01/31(土) 19:16:24
C++なんて教育するよりCでやったほうがコスト安い
343デフォルトの名無しさん:2009/01/31(土) 19:18:37
それで現場でいきなりC++やって、訳分からんクラス作ったりするんだな
344デフォルトの名無しさん:2009/01/31(土) 19:20:38
だからやらせないんだろ
345デフォルトの名無しさん:2009/01/31(土) 19:25:57
つーかCよりC++の方が便利で楽じゃね。
346デフォルトの名無しさん:2009/01/31(土) 19:30:31
つーかC++よりHSPの方が便利で楽じゃね。
347デフォルトの名無しさん:2009/01/31(土) 19:34:45
何が便利で何がラクなのか。素人に抽象化の機能なんか使わせたら
コードも動作も抽象化されて修復不可能になるんだぞ。
348デフォルトの名無しさん:2009/01/31(土) 19:35:35
初心者は何も抽象化しないよ
349デフォルトの名無しさん:2009/01/31(土) 19:50:57
抽象化なんて全く必要ないね
350デフォルトの名無しさん:2009/01/31(土) 19:53:23
このスレC++使いほとんどいないな
351デフォルトの名無しさん:2009/01/31(土) 20:03:25
初心者というかオレ天才的初心者な。
入門書を曲解して謎のコードを大量生産。
352デフォルトの名無しさん:2009/01/31(土) 20:03:57
ここまで「スクリプト言語使えよ」という意見ほとんどなし
353デフォルトの名無しさん:2009/01/31(土) 20:17:49
>>352
誰も使うなとは言ってない。
問題は、C with スクリプト言語か、C++ with スクリプト言語かだ。
354デフォルトの名無しさん:2009/01/31(土) 20:38:18
>>351
K&Rですね、わかります
355デフォルトの名無しさん:2009/01/31(土) 21:11:05
抽象化なんてC++には不向き。
機能に溺れて逆にCのほうが抽象化しやすくなってる。
356デフォルトの名無しさん:2009/01/31(土) 21:20:29
それはない。
357デフォルトの名無しさん:2009/01/31(土) 21:24:23
抽象化がほとんど出来ないがために中身がよく見えるC
中途半端な抽象化のせいで中身ダダ漏れだけど肝心な所には触れないC++
358デフォルトの名無しさん:2009/01/31(土) 21:49:38
黙って Haskell か Lisp 使っとけ
359デフォルトの名無しさん:2009/01/31(土) 21:52:54
で、お前はHaskell使ったことあるわけ?
360デフォルトの名無しさん:2009/01/31(土) 21:58:04
main = return "無いよ" >>= putStrLn
361デフォルトの名無しさん:2009/01/31(土) 22:14:59
世の半分程度の人は抽象思考が苦手
その状態でプログラムに手を出す人がいるが、
プログラム向いてないよと言いたい
362デフォルトの名無しさん:2009/01/31(土) 22:15:37
どうぞ言ってください
363デフォルトの名無しさん:2009/01/31(土) 22:44:00
論理的思考のできない人多いよね
364デフォルトの名無しさん:2009/01/31(土) 22:44:39
例えば?
365デフォルトの名無しさん:2009/01/31(土) 23:07:43
ちょっと抽象的なコードを書いたら読めないとか言われたり
366デフォルトの名無しさん:2009/01/31(土) 23:39:26
抽象的なコードもいいけど
むりやりC++で書いた関数プログラミング的なコードを読まされるのだけは勘弁
367デフォルトの名無しさん:2009/01/31(土) 23:57:26
C++からオーバーロードを引くけば食いおわった魚の骨のごとくである。

その心は?

C++-<<

おあとがよろしいようで。
368デフォルトの名無しさん:2009/01/31(土) 23:59:06
計算機を動かすコードに抽象的なんてことがあるだろうか?
369デフォルトの名無しさん:2009/02/01(日) 00:10:21
屁理屈大魔王。
370デフォルトの名無しさん:2009/02/01(日) 00:12:15
>>368
計算機を動かすコードには無いだろうね。
でも俺らが書いてるのは、計算機を動かすコードを生成させるコードだから。
371デフォルトの名無しさん:2009/02/01(日) 00:18:46
>>368
計算機を動かすコードはすべて抽象的なもの。

抽象的なコードが具体的な電荷や電気信号に変換されて計算機を動かす。
372デフォルトの名無しさん:2009/02/01(日) 00:20:45
C/C++で仕事してる俺から見るとJAVAorC#プログラマはC/C++に寄ってくるなと言いたい。
classの宣言と実体を全て.hファイルに記述されてるの見た時、
リアルで('A`)ウヘェーってなった。
3000行超えてるし…誰が管理するんだよ…
373デフォルトの名無しさん:2009/02/01(日) 00:22:10
早めにそれはアカンと言えばいいだけだろw
放置する方が悪い
374デフォルトの名無しさん:2009/02/01(日) 00:23:17
そもそも宣言と定義が分かれてるのがクソなわけで
375デフォルトの名無しさん:2009/02/01(日) 00:24:24
>>373
> 早めにそれはアカンと言えばいいだけだろw
まぁ、初期段階では指摘するチャンスが無かったってこともあるだろう、いろんな事情で。
376デフォルトの名無しさん:2009/02/01(日) 00:26:00
3000行って・・・大した事ないよね?
377デフォルトの名無しさん:2009/02/01(日) 00:27:52
Java or C# プログラマが全部そんな人だと思わないで下さい・・・
378デフォルトの名無しさん:2009/02/01(日) 00:27:58
大きなクラスなら.cppもそれくらい長くなることもあるだろ
メンバを一覧出来ないってことなら、現代的なIDEならそんなのは表示してくれるし
379デフォルトの名無しさん:2009/02/01(日) 00:28:37
ファイル変更時のリコンパイル範囲が問題なんだよ
380デフォルトの名無しさん:2009/02/01(日) 00:34:17
C&viの時代からプログラムは組めているのに、IDEがないとまともにかけない言語ってどうなの?
381デフォルトの名無しさん:2009/02/01(日) 00:35:12
>>379
Javaは動的解決だけどC++は静的解決って差もわからない奴がC++いじるともう・・・
382デフォルトの名無しさん:2009/02/01(日) 00:47:59
全部ヘッダで3000行ならきついだろ。
例外はBoostの水準のテンプレートライブラリだが、そんなの自分では書かないしね。
383デフォルトの名無しさん:2009/02/01(日) 00:51:36
なんだ、書かないんだ。
384デフォルトの名無しさん:2009/02/01(日) 00:51:51
テンプレートはどうせ全部ヘッダで書かないといけないから
クラス内に全部記述したので問題ない。
(static メンバ変数の実体定義だけはクラス外に書く必要があるが)
385デフォルトの名無しさん:2009/02/01(日) 00:52:59
>>372がテンプレート知らなかっただけってオチ?
386デフォルトの名無しさん:2009/02/01(日) 00:54:33
また知ったかが便乗してる
387デフォルトの名無しさん:2009/02/01(日) 00:55:15
いいや、Java/C#から来た人間がそんなもの書くわけないだろ。
家に帰ったらC++やりますって偽装でもない限り。
388デフォルトの名無しさん:2009/02/01(日) 00:56:00
>>385
それは無いな。
389デフォルトの名無しさん:2009/02/01(日) 00:58:39
>>372必死w
390デフォルトの名無しさん:2009/02/01(日) 00:59:38
知ったかが勘違いを押し切ろうとしている
391デフォルトの名無しさん:2009/02/01(日) 01:00:12
>テンプレートはどうせ全部ヘッダで書かないといけないから

おまえはどんな糞コンパイラつかってんだよ…
392デフォルトの名無しさん:2009/02/01(日) 01:02:00
393デフォルトの名無しさん:2009/02/01(日) 01:02:07
export なんて都市伝説です
Comeau C++ なんて知りません><
394デフォルトの名無しさん:2009/02/01(日) 01:04:41
395デフォルトの名無しさん:2009/02/01(日) 01:05:59
int 392(void){
return >>394;
}
396デフォルトの名無しさん:2009/02/01(日) 01:06:30
ふう。再帰化完了。
397デフォルトの名無しさん:2009/02/01(日) 01:06:39
export も知らない素人か・・・
398デフォルトの名無しさん:2009/02/01(日) 01:08:04
(void) ってC臭がプンプンするな
399デフォルトの名無しさん:2009/02/01(日) 01:09:47
主要コンパイラにないものを語って悦に入るって・・・
400デフォルトの名無しさん:2009/02/01(日) 01:10:16
exportがサポートされていない→糞コンパイラ
って、まったくプログラム書かない言語ヲタか何かかな。
401デフォルトの名無しさん:2009/02/01(日) 01:10:22
いるんだよね、Cの記述スタイル馬鹿にする奴
単純にCもまともに使えないだけなんだが
402デフォルトの名無しさん:2009/02/01(日) 01:12:17
>>391の使っているコンパイラを紹介して貰いたいところ
403デフォルトの名無しさん:2009/02/01(日) 01:20:58
export を知らなくて、ジョークも理解できなかったようだな
404デフォルトの名無しさん:2009/02/01(日) 01:21:38
3000行越えてるからどうこう言ってる奴は
とりあえずLinusさんが開発してるカーネルのkernel/sched.cを見た方がいい
405デフォルトの名無しさん:2009/02/01(日) 01:24:15
テンプレートに挑んでexportを知らない奴はいないだろう
406デフォルトの名無しさん:2009/02/01(日) 01:24:40
c/cppファイルなら別に文句ないぞ。
>>372の場合、ヘッダに全部書いているのが悪いだけだ。
407デフォルトの名無しさん:2009/02/01(日) 01:30:56
ああ、372は「C/C++で」宣言定義を全部.hに書いてるアホがいるって言ってたのか
そりゃクソだな
てっきり「Java/C#は宣言も定義も一つのファイルに書くから糞」って言ってるのかと思った
408デフォルトの名無しさん:2009/02/01(日) 01:31:53
お前・・・
正直なのはいいことだよ・・・
409デフォルトの名無しさん:2009/02/01(日) 01:33:26
>>403
まぁこうなったら「ジョークが理解されなかった」で押し通すしかないのはわかる。
410デフォルトの名無しさん:2009/02/01(日) 02:47:06
宣言と定義が別ファイルに分かれてるだけでもう二度手間というか
いまどきありえねーって思う。エッチとCは一緒だろ
411デフォルトの名無しさん:2009/02/01(日) 02:53:11
そうかなぁ
インターフェースと実装を分けるのって大事じゃない?
412デフォルトの名無しさん:2009/02/01(日) 02:55:07
interface があればいいんだよ
interface が
413デフォルトの名無しさん:2009/02/01(日) 02:56:42
>>410
そんなもん当然IDEが全自動でやってくれるだろjk。
……って言えるようになってほしいです。
414デフォルトの名無しさん:2009/02/01(日) 03:43:12
>>381のいってることが現実に
415デフォルトの名無しさん:2009/02/01(日) 08:56:03
どっかのえろい人はヘッダファイルを.cppから生成させてたな。
416デフォルトの名無しさん:2009/02/01(日) 09:13:46
# hoge.h
--------------------------------------
template <class T> class Hoge{...};

#include "hoge.h.impl"
--------------------------------------
# hoge.h.impl
--------------------------------------
template < class T >
Hoge::Hoge(){...
--------------------------------------

という幹事で、ヘッダの最後にincludeいれて、実装ファイルを読み込ませる方法で
文理させるのが最近の俺の流行り。
417デフォルトの名無しさん:2009/02/01(日) 09:20:57
素人質問で悪いんだけど、VC++2008の場合、templateは別として、
ヘッダファイルに関数の定義を書き込んじゃうと、多重定義エラーでない?
templateも特化すると多重定義エラーになるし。
418デフォルトの名無しさん:2009/02/01(日) 09:27:57
#pragma once

インクルードガードやっとけ
#ifndef foo
#define foo

implementation

#endif /* foo */
419デフォルトの名無しさん:2009/02/01(日) 09:32:57
#pragma onceの方はいいんだけど
2008の場合、通常のインクルードガードだと
コンパイル単位が違うとエラーが出るんだよね・・・なぜか。
420デフォルトの名無しさん:2009/02/01(日) 14:36:59
リンクエラーじゃないのか?だとしたら、そんなの当たり前だ。
上のほうで.hに書く云々って話は、全て、メンバ関数をclass内に書く、という話だと捉えたよ。
少なくとも俺は。
そうすればinline扱いになるし。

まさか「2箇所に書くのが嫌」と言いながら.h内で実装を別途用意するなんて
(相互参照とうでなければ)ありえないしね。
421デフォルトの名無しさん:2009/02/01(日) 14:41:27
>>417
リンケージについて勉強した方がいい
422デフォルトの名無しさん:2009/02/01(日) 14:47:22
こういう人が「自分はC++を使っている」と言うから
「C++プログラマはウンコ」呼ばわりされる原因じゃないのか。
423デフォルトの名無しさん:2009/02/01(日) 14:54:03
C++の入門書とかって能天気すぎなんだよ。
多重継承とか演算子オーバーロードとか副作用大きい機能とかを
知ってて使うことが上級者への道みたいに煽る。
いい迷惑だ。
424デフォルトの名無しさん:2009/02/01(日) 15:01:23
入門書には分割コンパイルの原理とか書いてないことが多いからなあ。
グローバル変数の実体は1個しか定義できないとか、そういう基本的なことを知らないまま
「C++出来ます」とか言い切るウンコが増えてきているから邪魔なんだよな。
425デフォルトの名無しさん:2009/02/01(日) 15:01:59
>>423
プログラミングの話をしているときに「副作用」をそういう意味で使うのは・・・
426デフォルトの名無しさん:2009/02/01(日) 15:03:56
知っててもなお使うに値するケースかどうか判断する事は
上級者になるのに重要なことだと思うが
427デフォルトの名無しさん:2009/02/01(日) 15:04:37
BK厨おつ
428デフォルトの名無しさん:2009/02/01(日) 15:05:59
2ちゃんねる推奨のAccelerated C++には
コンパイル単位の話も出てきませんでしたよ^^

っていうか、この本のソースコード、
VC++2008じゃコンパイルできないし^^;;;
429デフォルトの名無しさん:2009/02/01(日) 15:06:28
>>426
入門書だと、その判断するということを省いているのがまずいのでは?
430デフォルトの名無しさん:2009/02/01(日) 18:10:06
>>424
そういうのってリンカの仕事だからな
C/C++の範囲外ということで入門書では避けられてる

そしてあらゆる言語の入門書がそうやって逃げ回る結果
解説してる本がどこにもないという
431デフォルトの名無しさん:2009/02/01(日) 18:14:41
>>424
>グローバル変数の実体は1個しか定義できないとか、そういう基本的なこと

C++ Coding Standardにも出てくるけど
そういうことは「一回コンパイルすればわかる」からねぇ。
432デフォルトの名無しさん:2009/02/01(日) 18:45:28
>>426
> 上級者になるのに重要なことだと思うが

「入門書」の話ししてるんだけど。
433デフォルトの名無しさん:2009/02/01(日) 19:13:26
C++やC#は演算子オーバーロードがあるだけで神
他の言語は設計者が数値計算とか3Dとかやらない文系なのがモロバレ
434デフォルトの名無しさん:2009/02/01(日) 19:26:21
っ ほーとらん
435デフォルトの名無しさん:2009/02/01(日) 19:34:08
>>431
gccだとオプション次第では分からないことも・・・
436デフォルトの名無しさん:2009/02/01(日) 19:34:11
>>430
解説してる本は普通にあるよ
437デフォルトの名無しさん:2009/02/01(日) 20:49:11
演算子オーバーロードが必要だと思うのがよくわからん。
自由に使わせたら可読性下がるだろあれ。
438デフォルトの名無しさん:2009/02/01(日) 20:50:43
お前、可読性の意味分かってないだろ
439デフォルトの名無しさん:2009/02/01(日) 20:52:41
おまえだよ。
440デフォルトの名無しさん:2009/02/01(日) 20:54:13
型見て演算子の宣言見ないと何やってるかわかんないからな。
自分の中で閉じるなら問題ないかもしれないが自由に触らせるものではないでしょう。
441デフォルトの名無しさん:2009/02/01(日) 20:54:40
定義だろ
442デフォルトの名無しさん:2009/02/01(日) 20:56:44
いい加減、カプセル化に慣れようぜ
443デフォルトの名無しさん:2009/02/01(日) 20:59:10
隠蔽化って隠蔽内容が完全でデザインに矛盾がなく直観的であることが前提だから
慣れるとか簡単なことじゃないぞ。
444デフォルトの名無しさん:2009/02/01(日) 21:08:36
プログラムのセンスない奴は直観をどこまでも拡大解釈するしねw
445デフォルトの名無しさん:2009/02/01(日) 21:16:23
数値型作る場合以外どうせ使わないし、
その場合は直感的になるから問題ないよ
446デフォルトの名無しさん:2009/02/01(日) 21:18:40
お前が問題なくても自称できるやつが謎のオーバーロードし始めるんだよ。
C++はこういう問題がたくさんある。Javaでなくなったのにはそれなりの理由がある。
447デフォルトの名無しさん:2009/02/01(日) 21:27:54
結局ジェネリック追加されたし
どうなるかは分からないよ
448デフォルトの名無しさん:2009/02/01(日) 21:32:45
まぁその程度の低レベルな話は
C++ Coding Standard一冊で全部解決。

たった200頁の本だし(ぺらぺら)、
Effective C++やExceptional C++よりはるかに簡単な本だし、
もう必読書ってことで。
449デフォルトの名無しさん:2009/02/01(日) 21:34:04
演算子オーバーロードが要らないと強弁する文系丸出しが続々登場!
みんなゲームとかつくらないの? おもしろいよ。
450デフォルトの名無しさん:2009/02/01(日) 21:35:54
ああゲームの末端で好きかってやってメインプログラマーに迷惑かける奴か。
つーかレス見る限り個人でしょぼいゲーム作ってる気になってるだけか。
451デフォルトの名無しさん:2009/02/01(日) 21:36:30
おれはレベル高いからって言ってる奴はチーム仕事してねーだろ
452デフォルトの名無しさん:2009/02/01(日) 21:37:27
プロジェクトの出来は、最もレベルの低いものに左右される
453デフォルトの名無しさん:2009/02/01(日) 22:01:13
本読んどいてでみんなまともにプログラム組めてたらこの仕事天国だよ
454デフォルトの名無しさん:2009/02/01(日) 22:02:57
>>452
それはリスク対策が出来ないプロマネがアホなんだろ
455デフォルトの名無しさん:2009/02/01(日) 22:02:59
逆だろ
みんながまともにプログラム組めるなら、プログラミングなんてコンビニのバイト程度の価値しかなくなる
ほとんどの自称プログラマがカスだからまともなプログラマが食っていける
456デフォルトの名無しさん:2009/02/01(日) 22:06:47
プログラムくらいアホでも組める
457デフォルトの名無しさん:2009/02/01(日) 22:16:21
Linuxもアホでもかけるんだね。
458デフォルトの名無しさん:2009/02/01(日) 22:25:41
Linuxはアホじゃなくてライナス
アホはAWK
459デフォルトの名無しさん:2009/02/01(日) 22:28:25
Bjarne Stroustrup インタビュー (?)
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
460デフォルトの名無しさん:2009/02/01(日) 22:39:58
10年くらい前のジョーク?みたいだけど根本的な解決を見た事ないな。
むしろ策略を追加してる印象。
461デフォルトの名無しさん:2009/02/02(月) 00:01:39
まぁ、自分もカスだから人のこと言えないけど
そのカスである俺よりもひどい能力の人が上司だったりしたこともあるので
カスはカスで生きる方法があるんだと思う今日この頃。
462デフォルトの名無しさん:2009/02/02(月) 00:02:25
まあカスの生きる道がないと世の中死屍累々だと思う
463デフォルトの名無しさん:2009/02/02(月) 01:22:59
最上層と最下層の間の幅が一番小さいのはやっぱりHSPなのか?
一番大きいのはいうまでもなくC++だろうが。
464デフォルトの名無しさん:2009/02/02(月) 03:43:42
HSPのきれいなソースを見ると才能の無駄遣いだと思うけどなw
>>463が想像するより人によってかなり差がある
465デフォルトの名無しさん:2009/02/02(月) 13:20:46
>>463
いちいちそんなカス言語を引き合いに出してくれるなよ。
466デフォルトの名無しさん:2009/02/02(月) 14:34:28
いや、C++の問題点を浮きあがらせるためには
その正反対のパラダイムをもつHSPを知ることが先決。
467デフォルトの名無しさん:2009/02/02(月) 14:38:36
Σ (゚Д゚;)ハッ この流れもしやHSPオンリー?
468デフォルトの名無しさん:2009/02/02(月) 15:19:35
>>466
正反対とは?
469デフォルトの名無しさん:2009/02/02(月) 15:29:58
マルチパラダイムの正反対…なんだろ。意味不明。
470デフォルトの名無しさん:2009/02/02(月) 15:32:18
てか、HSP使いなんていくら頑張ってもC++を
マスターすることなんてできないだろうから、
このスレで発言するいること自体間違ってる。
471デフォルトの名無しさん:2009/02/02(月) 15:59:18
するいる
472デフォルトの名無しさん:2009/02/02(月) 16:30:40
>>463
> 最上層と最下層の間の幅が一番小さいのはやっぱりHSPなのか?
> 一番大きいのはいうまでもなくC++だろうが。

人によってそんなに差がある言語は困るんだよ
ウンコプログラマーには分からんと思うけど
473デフォルトの名無しさん:2009/02/02(月) 18:19:14
そもそもなんでHSPが出てくるのかわからないのだが…
474デフォルトの名無しさん:2009/02/02(月) 19:29:46
>>472
誰と戦ってるんだお前
475デフォルトの名無しさん:2009/02/02(月) 19:58:01
>>474
C++ と、じゃね?
476デフォルトの名無しさん:2009/02/02(月) 23:58:06
TDNのHot Soup Processor
477デフォルトの名無しさん:2009/02/02(月) 23:59:45
アツー!
478デフォルトの名無しさん:2009/02/03(火) 02:40:03
C++: 複雑・高機能・マルチパラダイム・初心者には人気ない
HSP: 単純・低機能・パラダイムレス・初心者に大人気
479デフォルトの名無しさん:2009/02/03(火) 10:44:07
>パラダイムレス
さあ困った。
480デフォルトの名無しさん:2009/02/03(火) 12:12:00
なぜ世界的な現役最高峰プログラマーが世界的な言語について語っていてる
スレで、極東ローカルでゴミしかつかってない言語の話をするのか。
481デフォルトの名無しさん:2009/02/03(火) 12:17:18
世界的な現役最高峰プログラマーが
このスレで語ってるわけではない。
482デフォルトの名無しさん:2009/02/03(火) 14:59:25
HSPはダークホースだよな。
支持基盤が強いので化ければC++を駆逐できる可能性はあると思う。
483デフォルトの名無しさん:2009/02/03(火) 15:48:29
>>482
馬鹿も休み休み言え。
484デフォルトの名無しさん:2009/02/03(火) 16:25:22
春休みだからな。
485デフォルトの名無しさん:2009/02/04(水) 07:52:13
素人だけど、Cをやっていてある程度理解しているつもりなんだが、
やればやるほど分からないことやきちんと理解していないことが
次から次へとどんどん出てくるんだよな。
なんか果てしない戦いが続いてる感じになってくる。
プログラム言語ってこういうもんなんだろうな。

C++も少しは勉強したんだが、C++プログラマになるとウンコになるのか。
やめとこうかなw
486デフォルトの名無しさん:2009/02/04(水) 08:08:25
具体的に何が難しい?
ライブラリーを全部覚えるとかならともかく文法や作法はそれほど難しくないと思うけど。
演算子の優先順位とかなら暗記する必要もないし。
487デフォルトの名無しさん:2009/02/04(水) 08:19:32
*pp[i]でsegvって(*pp)[i]なら平気でああそう言えばそうだったなあとか
*が増えると普段使ってないと割ときついね
488デフォルトの名無しさん:2009/02/04(水) 08:32:55
>>487
それだとCからキツイのでは・・・?
489デフォルトの名無しさん:2009/02/04(水) 08:49:24
C++ハジメル人は
STL、Boostを参考にコーディングし、
JAVA、C#、COOLを勉強するのばベストだね。

MFCから入ると変な癖つくからやめたほうがいいと思った。
490デフォルトの名無しさん:2009/02/04(水) 09:14:30
MFCはSTLより長寿なんだぜ
491デフォルトの名無しさん:2009/02/04(水) 09:19:43
先に相手が死んだ上での長寿なら誇れるけど、
どっちも生きてる上で「先に生まれたぶんだけ長寿」な場合、
設計の古さのアピールにしかならないかも。
492デフォルトの名無しさん:2009/02/04(水) 09:42:14
>>490
それは、MFCは何時死んだ設定で計算してんの?
493デフォルトの名無しさん:2009/02/04(水) 12:28:49
>>485
>プログラム言語ってこういうもんなんだろうな。
そういうもん。
まあ、やろうとしている事の複雑さによる。

>C++も少しは勉強したんだが、
テンプレートの魔力に取り込まれた人の一部は
一生闘い続けた挙句、boost という魑魅魍魎を召喚しました。
494デフォルトの名無しさん:2009/02/04(水) 13:22:46
>489
Boostなんか超絶悪い癖が付くから、参考にしない方がいい。
悪癖を自覚しながら使うのはいいけど。
495デフォルトの名無しさん:2009/02/04(水) 13:38:01
他人と協調してプログラミングを書くつもりなら
better C以外の使い方はするな。

Templateの変態度を味わいたいならBoostガンガン使え
でも檻から出てくるなよ
496デフォルトの名無しさん:2009/02/04(水) 14:16:06
>>494
でも、その一部が次期C++に入りそうなんだろ。
楽しみ半分、不安も半分。
497デフォルトの名無しさん:2009/02/04(水) 16:41:37
shared_ptrとかfunctionとかユーザとして使う分にはいいのもあるよ。
ソースコードは悪魔だけど。
498デフォルトの名無しさん:2009/02/04(水) 16:43:19
>>486
>>485だけど、文字列を扱う際に配列で扱うのとポインタで扱うのでは
微妙に違うから、それがらみで混乱することがあるかな。
Cでの文字列の扱いは基本的に嫌い。
C++だとstringクラスあるから文字列の扱いは楽なんだろうなあ。
499デフォルトの名無しさん:2009/02/04(水) 17:36:03
他人と協調してプログラミングを書くつもりなら
C++の基本機能 ぐらい理解しろ。

BetterCを味わいたいならEC++でも使ってろ
でも檻から出てくるなよ
500デフォルトの名無しさん:2009/02/04(水) 18:15:31
>>499
これのこと?逆に、C++として何か欠けているの?
http://www.caravan.net/ec2plus/
501デフォルトの名無しさん:2009/02/04(水) 18:44:13
>>500
主に例外とテンプレートと名前空間がない
あと多重継承とかRTTIとか新形式キャストとか

要するにアンチC++厨が嫌いなものを取っ払ったんだが
本当にただ取っ払っただけなので色々と使い物にならない
特に例外まわり
502デフォルトの名無しさん:2009/02/04(水) 18:44:48
ここでLinusがC+Liなんてオシャレ言語を作ったら一生ついていくんだけどな。
CVSとサブバdisってGit作ったくらいだからやるんじゃないか?
503デフォルトの名無しさん:2009/02/04(水) 18:47:48
Cという完璧な言語がある以上、その再発明はしない
とLinusは答えるだろう
504デフォルトの名無しさん:2009/02/04(水) 19:24:29
Linusが言語のデザインなんてできるかよw
どう見ても一発屋だろ。
505デフォルトの名無しさん:2009/02/04(水) 20:00:42
>>483,484
馬鹿が存分に休みながら言ってるってことかwww
506デフォルトの名無しさん:2009/02/04(水) 20:16:49
>>504
ということは、HSP開発者>Linusってことになるのか…
507デフォルトの名無しさん:2009/02/04(水) 20:29:23
>>506
当たり前だろ。
何をいまさら。
508デフォルトの名無しさん:2009/02/05(木) 00:42:14
少なくとも組み込み系ならEC以上の機能はいらない。
>>501が上げたものにメリットがほとんど感じられないうえ
デメリットが大きすぎる。
509デフォルトの名無しさん:2009/02/05(木) 00:44:20
Google C++コーディング規約
例外

我々はC++例外を使用しません。
510デフォルトの名無しさん:2009/02/05(木) 00:57:17
例外はモジュール内だけの閉じた世界で使われる分には問題ないけど、
それを飛び越えてグローバルな世界にしゃしゃり出てくると無限地獄の始まり。
511デフォルトの名無しさん:2009/02/05(木) 00:58:21
門外漢だけど、名前空間と新キャストは実行時のオーバーヘッドもないから組込で使っても問題ないように思えるんだが。
512デフォルトの名無しさん:2009/02/05(木) 01:05:54
>>503

Linusは、C++もCも糞だが、Cの方が圧倒的にマシだから
使ってるって書いてたよ。

Cを完璧な言語なんて思ってないと思うよ。
513デフォルトの名無しさん:2009/02/05(木) 01:08:13
だったらRubyを使えばいいのに。
514デフォルトの名無しさん:2009/02/05(木) 01:08:17
Cより安全で実用的な言語ってあるのかなぁ
515デフォルトの名無しさん:2009/02/05(木) 01:11:13
>>514
COBOL
516デフォルトの名無しさん:2009/02/05(木) 01:12:39
>>514
PASCAL・・・は、安全だけど、実用的じゃない・・・
517デフォルトの名無しさん:2009/02/05(木) 01:15:53
Java
ただし、ごく一部の用途に限る
518デフォルトの名無しさん:2009/02/05(木) 01:33:55
言語をもっとカスタマイズできる方向にならないのかな
EmbededC++よりももっと自由度高く。
多重継承禁止オプションとかテンプレート禁止オプションとか。
519デフォルトの名無しさん:2009/02/05(木) 01:35:18
使わなければいいだけじゃん。
520デフォルトの名無しさん:2009/02/05(木) 01:41:54
例外使わない主義の人たちはコンストラクタの失敗をどうやって検知してるんだろう
全てのクラスにerrno的なフラグ仕込んで作るたびにチェックしてるんだろうか
例外で通知するより凄く忘れやすそうだし、危険に感じるんだけど
例外アンチの人たちはその辺どうなの
521デフォルトの名無しさん:2009/02/05(木) 01:45:14
ファクトリ関数作ったりコンストラクタと別に初期化関数設けたりするんでしょ、きっと。
522デフォルトの名無しさん:2009/02/05(木) 01:50:04
ファクトリ関数だって最終的にはコンストラクタ呼ぶんだから
コンストラクタのエラーを拾うのがファクトリ関数になるだけで話は一緒だろ

初期化関数?いちいちデフォルトコンストラクトしてから値設定し直すの?
実行効率命の組み込みでそんなことしてていいの?
523デフォルトの名無しさん:2009/02/05(木) 02:03:04
最適化すれば冗長なコードは消えるだろJK
524デフォルトの名無しさん:2009/02/05(木) 02:03:51
いまさらぬるぽのキーワードができるとかものすごいうんこだと思う。
0で書いた既存のC++コードは置換すらできない。
525デフォルトの名無しさん:2009/02/05(木) 02:12:39
0からぬるぽの意味が消えるわけじゃないけどな
526デフォルトの名無しさん:2009/02/05(木) 02:13:57
>>523
初期化関数がインライン化できない程度に複雑だったら無理だろJK
527デフォルトの名無しさん:2009/02/05(木) 02:26:43
>>519
チーム仕事したことないだろ・・・
528デフォルトの名無しさん:2009/02/05(木) 08:43:14
>>514
Cのどこが安全なんだ
むしろ安全じゃないから専門家に使いやすいのに
安全を追うならVBでも使ってろ
529マイク ◆gZ6OoOjBU6 :2009/02/05(木) 09:35:06
Linusが本当にそれを言ったなら
アメリカ人らしくて本音をちゃんと名前を出してぶっちゃけてくれているから
アメリカつうか白人文化は良いな。
530デフォルトの名無しさん:2009/02/05(木) 09:42:39
今度はこっちか
531デフォルトの名無しさん:2009/02/05(木) 09:42:54
リーヌスがアメリカ人?
532デフォルトの名無しさん:2009/02/05(木) 10:09:26
C++の深刻な問題点は、ソフトをグループで開発するときに現れる。
C++に精通したプログラマはついついC++の高度なテクニックを使って
しまう。ところが、ペイペイの新米プログラマはそのコードの意味を
真に理解しておらず、誤解からバグを組みこんでしまう。

直接的にバグを仕込んだ新米プログラマが怒られるのだろうが、
考えようによっては高度で難解なコードを書いたベテランC++
プログラマの方がバグを発生させる罠を仕掛けたようなもので、
もっと責任が重いと思う。

まぁ、C++はプログラマの習得レベルの差が露骨に表れるから
共同開発には不適で、一人のプログラマがシフト開発するとき
しか使えない言語ってことだ。
533デフォルトの名無しさん:2009/02/05(木) 10:12:44
ルーシーの弟であるところの Linus はアメリカ人だろ一応。

>>532
どうだろ。無能は VB8 やらせても無能だしなあ。
534デフォルトの名無しさん:2009/02/05(木) 10:43:17
>>532
「坊主憎けりゃ袈裟まで憎い」の典型的コメントだな
別にC++が悪いわけではない
無能プログラマが悪いだけだ
535デフォルトの名無しさん:2009/02/05(木) 11:12:15
>>534
オレはCのエキスパートだが(この点について煽りたきゃ好きなだけ煽れw)、C++でオーバーロードやら
派生やらを駆使したプログラムを追うのは苦労するし、そんな書き方する奴はアホかと思うぞ。
C++の「美しい」書き方は解析やデバッグにはまるで向かないんだよ。沢山のクラスに「append()」が
あったとき、コード中にある「hoge.append()」が一体どこを指しているのやら、探し出すのは大変なことだ。
プログラミングで一番大変なのはデバッグなのに、それ以外の仕事で大変な思いをするのは
(しかも、みずから選んで)バカバカしいことだと思うね。
536デフォルトの名無しさん:2009/02/05(木) 11:19:18
カプセル化に意義を見出せず、中で何やってるか気になって
追いかけないと気がすまないのが C のエキストラとやらですか。
まあ下手糞にクラス作らせると、そういうこともあるけどさ。
537デフォルトの名無しさん:2009/02/05(木) 11:22:00
>>535
派生やオーバーロードを他人が追うことになっている時点でC++の使い方を間違えている。
ユニット化してブラックボックスで使うものだろ。
538デフォルトの名無しさん:2009/02/05(木) 11:23:15
何を言ってるんだ?
デバッグ時や機能拡張時は追いかけざるを得ないだろう。
動いているものなら放っておくよ。
539デフォルトの名無しさん:2009/02/05(木) 11:28:16
>>537
おまえも何を言ってるんだか。
ブラックボックス化したクラスは、本人しか触るべきでない?
そいつが辞めたら、死んだら、どうするんだ。
機能拡張のために、またしても派生クラスを作るのか。
元のクラスを見ないまま派生して、効率が悪い、遅い、だけならいいが、
見ないまま書いたコードがバグらない保証があるのか?

だいたい、「本人しか触れない」と宣言した時点で、糞コード確定だってことわかってるか?
540デフォルトの名無しさん:2009/02/05(木) 11:28:59
>>538
他人がデバッグや機能拡張している時点でC++の使い方を間違えている
541デフォルトの名無しさん:2009/02/05(木) 11:30:11
>>539
オブジェクト指向全般に対する批判だな、こりゃ。
クラスの仕様書が残っていないのが悪い。
542デフォルトの名無しさん:2009/02/05(木) 11:36:42
>>541
どんなツモリ、と
どうデキテルはちがうだろ。
543デフォルトの名無しさん:2009/02/05(木) 11:45:01
クラス図くらい書いた上での話なんだろうな。
544デフォルトの名無しさん:2009/02/05(木) 11:51:55
Cプログラマって
IDE支援なしで組んでるの?
545デフォルトの名無しさん:2009/02/05(木) 12:07:36
>>539
お前は立派な糞グラマだ
546デフォルトの名無しさん:2009/02/05(木) 12:44:46
>>534

お前みたいなのがバグを引き起こすテロリストになるのだ。

腐れチンポが、死ね。
547デフォルトの名無しさん:2009/02/05(木) 12:50:52
>>546
逆ギレすんなよウンコグラマ
548デフォルトの名無しさん:2009/02/05(木) 13:02:00
>>541
> オブジェクト指向全般に対する批判だな、こりゃ。
これに尽きる。Cのエクスタシー君の話は、「C++の話」ではない。
549デフォルトの名無しさん:2009/02/05(木) 13:07:48
そうか、逃げ道が見つかってよかったな。
でもその逃げ道は、「C++で書かれたプログラムはデバッグも修正もおそろしく手間がかかる」という
命題を否定できないけど、いいのか?
550デフォルトの名無しさん:2009/02/05(木) 13:11:27
誰々がいなくなれば解決すると主張する人間と、
継承とか例外がなくなれば解決する主張する人間では、どっちがマシだろうか。
551デフォルトの名無しさん:2009/02/05(木) 13:16:10
>>549
で、クラス図くらいは書いた上での話なんだろうな。
>>539の言っているのは一つの関数を複数人でいじり倒すのと同じことなのだが
552デフォルトの名無しさん:2009/02/05(木) 13:24:46
C++は1行楽にするため何十行も追加するような言語
share ptrとかくだらん小細工ばかり多すぎ
553デフォルトの名無しさん:2009/02/05(木) 13:35:04
>>552
そんなこといってるから
例外出た時に
メモリリークしてても気づかないんだよ。
554デフォルトの名無しさん:2009/02/05(木) 13:37:00
>>552
お前はC丼でも使ってろ
555536:2009/02/05(木) 13:40:37
>>552
C++ はマルチパラダイムです。検討ハズレですね。

つか、なんで双方必死なの?
個人的には、構造化すら満足に出来ない連中に
「OOノススメ」なんて無茶だと思うんだが。
556デフォルトの名無しさん:2009/02/05(木) 13:41:23
クラス図見てもメモリリークはどうにもならんからな・・・
557536:2009/02/05(木) 13:41:40
「健闘」の誤変換に気付いて修正しておいて
「検討」とはなんたる失態。
558デフォルトの名無しさん:2009/02/05(木) 13:43:04
>>554
C丼で思い出した。
小学生の時に、藤井と言う子がいたんだが、彼女が日直の時に黒板の井の字の中に点を打ったのは、僕です。
それ以来、彼女はみんなから、藤丼と呼ばれるようになりました。ごめんなさい。
559536:2009/02/05(木) 13:46:25
>>556
いや、クラス図は単に characteristics な面しか記述できないんだから
当たり前。
560デフォルトの名無しさん:2009/02/05(木) 13:53:42
結局誰も「C++はデバッグが極めて困難な言語だ」という命題には反論出来ないことはわかった
561デフォルトの名無しさん:2009/02/05(木) 13:56:42
>>560
ちょっと待った
命題には前提があるだろ
「もし下手グラマがC++に糞コードをたくさん入れたら」という
562デフォルトの名無しさん:2009/02/05(木) 15:25:24
俺自身C++グラマだけど、
IDEが使えないような状況なら「デバッグはきわめて困難」だと思うぞ。
563デフォルトの名無しさん:2009/02/05(木) 15:40:41
結局>>539=>>549はフェードアウトか。
564デフォルトの名無しさん:2009/02/05(木) 15:42:12
>>561
命題って言いたいだけだから、深く突っ込むとヒス起こすのでは。
565デフォルトの名無しさん:2009/02/05(木) 16:11:53
>>562
でも自分はJavaでもC#でも同じことを感じると思う。
566デフォルトの名無しさん:2009/02/05(木) 16:20:25
>>565
動的なディスパッチがある言語(C++, Java, C#)は
ソース見ただけだと、次にどこに行くのかわかんないからねえ。
567デフォルトの名無しさん:2009/02/05(木) 16:46:39
だからまずデザパタを理解しろって
話はそれからだ
568デフォルトの名無しさん:2009/02/05(木) 17:11:06
デザパタ万能論者か
569デフォルトの名無しさん:2009/02/05(木) 18:03:19
なんで唐突にデザインパターンに話を逸らそうとするんだろう。
570デフォルトの名無しさん:2009/02/05(木) 19:01:43
>>566
on the flyでswitch文に変換して表示してくれるエディタを開発すればいいのだ
571デフォルトの名無しさん:2009/02/05(木) 19:10:50
>>562
gdbなめんな
慣れれば超便利だぞ
572571:2009/02/05(木) 19:11:46
よく考えるとgdbは超便利ってほど便利でもないような気がしたが
まあ普通にデバッグでやりたいと思えることはちゃんとできる
573デフォルトの名無しさん:2009/02/05(木) 20:29:17
この前、久しぶりにCでコードブレーカってゲーム作る機会があって、
がりがり書いてたんだけど、後で見直したらスパゲッティだった。

で、気が向いてC++に移植したんだけど、ずいぶん見通しが良くなってコードも短くなった。STL使ってるが。
コードを解くAIもクラスに分離できたし、いいことしかなかった。そんな趣味グラマ。

っていうかね、C++から離れられん体になってしまった。
クラスのいいところは、Length()とかSize()とかIsEmpty()ってメソッドが直感的に使えること。回りくどくない。リードオンリーだし。
不満は参照が固定されることだなぁ。ポインタ見たく挿しかえれないのが最初戸惑った。
574デフォルトの名無しさん:2009/02/05(木) 20:29:34
>>570
マジで頭いいな!
と一瞬思ったけど、すぐに、Cのコードをcppでマクロ展開したときの
苦い思い出が頭をよぎったよ。
575デフォルトの名無しさん:2009/02/05(木) 20:29:48
なんか「最強の格闘技は何か?」って議論に似てるな。
結局使う人次第でしょ。
576デフォルトの名無しさん:2009/02/05(木) 20:31:28
そういう時は、素直にポインタ渡しでいいじゃん
577デフォルトの名無しさん:2009/02/05(木) 20:34:42
>>576
そうかもしれん。。。
578デフォルトの名無しさん:2009/02/05(木) 20:46:40
どれが呼ばれるか、なんて、ステップ実行すればすぐ分かる事。
デバッガが無いなら typeid でも出力すればいい。
579デフォルトの名無しさん:2009/02/05(木) 20:56:02
>>573
file.open("r")がopen(file,"r")より読みやすいとはどうしても思えない

メンバ関数って結局は仮想関数の都合で第一引数を特別扱いしてるだけだろ
そもそも読みやすくするための構文じゃないと思うんだけど
580デフォルトの名無しさん:2009/02/05(木) 21:01:14
特定のオブジェクトに関する情報を、限られた範囲の関数でグローバルに扱うものです。
581デフォルトの名無しさん:2009/02/05(木) 21:03:36
>>556
継承やオーバーロードが追えないとか言うからクラス図を書けといったのに、
今度はメモリリークですか。
やれやれ。
話を逸らさないと都合が悪いようだな。
582デフォルトの名無しさん:2009/02/05(木) 21:24:01
>>579
そんな貴方にscheme
583デフォルトの名無しさん:2009/02/05(木) 21:26:20
>>573
えーっと、何かを開くときは、コンストラクタで指定するのがほとんどなんで、そういう奇妙なことにはならんと思うよ。
std::ifstream ifs(Path);
で開ける。開いたかどうかは、isf.is_open();で一発。読み取りはこれでok。
もちろんifs.open(Path);ってこともできる。
ちなみに書き込みは、
std::ofstream ofs(Path);〜。
でOK。

俺の場合だけども、基本的にカウンタ以外の変数の使いまわしはしないなぁ。
584デフォルトの名無しさん:2009/02/05(木) 21:40:48
>>579
操作の主体となるデータがはっきりするから
OOの方が分かりやすいと思うが。
というか、ファイル名はどこに指定するんだ? それは。
585デフォルトの名無しさん:2009/02/05(木) 21:48:10
>>584
ファイル名用の引数忘れてた…気にしないでくれ

それはそれとして、fileは操作の主体じゃないぞ
ファイルディスクリプタはファイルから中身を取り出すためのトンネルであって主体はあくまでファイルの実体
だからたとえばreadはfileを読むんじゃなくてトンネルに手を突っ込んで中身を取り出す操作なんだから
file.read()よりread(file)の方が間違いなく的を射てる

OOってその辺の混同を招くから気持ち悪いんだな、うん
586デフォルトの名無しさん:2009/02/05(木) 21:49:39
>>583
カウンタも使い回すか?
その都度、forで宣言するだろ。
587デフォルトの名無しさん:2009/02/05(木) 21:52:50
OO表記をdisりたいんなら
file.read()とかよりバイナリメソッドを例にとったほうがいいよ

"".equals(s)とかs.equals("")とかいうやつね
588デフォルトの名無しさん:2009/02/05(木) 21:53:17
>>585
まあ、一口にOOといっても、Common LispのCLOSみたいなのならそういう気持ち悪さは無いが
589デフォルトの名無しさん:2009/02/05(木) 21:55:49
>>585
ファイルディスクリプタの先にあるファイルそのものも
カプセル化により抽象化して内包してしまえるのだよ
590デフォルトの名無しさん:2009/02/05(木) 21:55:58
>>587
バイナリメソッドは実はそんなに気にならないなぁ
"".equals(s)は「.equals」って演算子みたいに見えるから
二項演算は操作が真ん中にある方がしっくり来る
591デフォルトの名無しさん:2009/02/05(木) 21:56:53
File1にFile2が出たら

C++なら
file1.read()
file2.read()
と書けるけど
Cなら
read_file1(file1)
read_file2(file2)
になる。
オーバーロードできないといちいち名前変えなきゃいけないから気持ち悪いんだな、うん
592デフォルトの名無しさん:2009/02/05(木) 21:58:58
>>590
本来対等である2項演算子のoperandのどっちかを無理やり「receiver」に
見立てなきゃいけないのは不自然だと思わないの?

Lispなら常にoperatorが前置でoperandは平等かつ何個でも置けるね
593デフォルトの名無しさん:2009/02/05(木) 21:59:41
>>589
それが嫌なんだよなぁ
オブジェクト指向ってそういう風に「同じようなものに関わってるけど、実は微妙に違うもの」ってすぐ隠蔽しちゃうじゃない
実はその微妙な違いが大事だったりするのにさ

下手に隠蔽するから、いざ区別が必要になった時に微妙に違うクラス作り直すことになって
同じような名前が付いてて同じような機能持ってて……ってありがちじゃん
元々別にしてりゃよかったのに
594デフォルトの名無しさん:2009/02/05(木) 22:06:24
オブジェクト指向教信者に何を言っても無駄だよ。
こいつらは批判精神なんてとっくに失ってる。
何も考えずにオブジェクト指向を信仰してるだけなんだから。
出現からこれだけ時間が経って、これだけ成果を挙げていないものを
いつまでも信じるなんて信仰以外の何物でもないよ。
595デフォルトの名無しさん:2009/02/05(木) 22:06:59
>>593
自分の無能さを言語のせいにしてると、いつまでたっても成長しないよ。
596デフォルトの名無しさん:2009/02/05(木) 22:08:48
>>586
たまーに、必要になるときがあるんだわ。基本的にはそのつど宣言するのだけども。
597デフォルトの名無しさん:2009/02/05(木) 22:09:27
>>593
C++の標準からしてそうじゃん…
stringとstringstreamとかさ
ただのchar[]に大げさな名前と機能付けて似たようなもの2つも作ってアホかと
598デフォルトの名無しさん:2009/02/05(木) 22:10:41
vector<char>もあるぞw
599デフォルトの名無しさん:2009/02/05(木) 22:12:09
>>598
それはバイナリ配列でしょ。
600デフォルトの名無しさん:2009/02/05(木) 22:12:18
stringとstringstreamが同じようなものって、どういうこった。
601デフォルトの名無しさん:2009/02/05(木) 22:13:35
C のようなバッファとサイズを渡して結果を入れてもらう関数を使うときは
vector<char> を使わざるを得ないんだよ、現状では。
そのうち string 使えるよう保証されるようになるけど。
602デフォルトの名無しさん:2009/02/05(木) 22:14:27
stringstreamはsprintf相当のもので、std::stringはコンテナだよ。
603デフォルトの名無しさん:2009/02/05(木) 22:17:42
>>601
奇妙な設計に見えるなぁ。
Cとの互換性のためって言うならそういうのもあるんだろうけどさ。やったことないや。
604デフォルトの名無しさん:2009/02/05(木) 22:24:24
ガタガタぬかさずに使えや
C++に文句言ってる奴はC止まりの奴に決まってる
605デフォルトの名無しさん:2009/02/05(木) 22:26:57
>>604
なぜかC++信者はCをよく理解してない分際で「C止まり」などと見下したことを抜かすんだよなあ
606デフォルトの名無しさん:2009/02/05(木) 22:29:33
>>605
何を抜かすか
俺はC89の規格が決まった頃からずっとCを使っている
いわゆる両刀使いだ
607デフォルトの名無しさん:2009/02/05(木) 22:30:17
>>603
現状の規格では string の内部バッファは連続領域とは限らない。
だから規格に厳密に従うなら、string をこの目的で使う事は出来ない。
昔は vector もそうだったが、2003年に改善された。
string も次期で改善される予定。
まあ、実際に string の内部バッファが連続領域でない実装なんて知らないけど。
data() や c_str() の実装の手間を考えると当然だろう。
608デフォルトの名無しさん:2009/02/05(木) 22:47:44
>>607
なるほど。
609デフォルトの名無しさん:2009/02/05(木) 23:50:52
>>590
そういえば、s.equals("")なら許せるけど、Javaとか(C++も?)
定数文字列を先に持ってくる奴が多いんだろう

C言語でも、if( 0 == p ) みたいにひっくり返す馬鹿がいるけど、
== を = と書いたことを検出できる、とか言い訳にもならない
610デフォルトの名無しさん:2009/02/05(木) 23:55:16
>>609
javaのは、sがnullでもヌルポが発生しないってことらしい。
ダメテクニックだな。
611デフォルトの名無しさん:2009/02/05(木) 23:56:18
ifがbool以外をとるのがダメなんだろうけどさ。
明示的にboolにキャストが必要とかすればp=0とかしようが間違えないわけで。
612デフォルトの名無しさん:2009/02/05(木) 23:56:59
間違って=と書いた日の問題箇所特定の難しさを知らんとしたら、かなりの幸せ者だ
613デフォルトの名無しさん:2009/02/05(木) 23:57:14
          _
      ミ ∠_)
         /
         /   \\
 ウイーン  Γ/了     | |
  ウイーン  |.@|    | | ガッガッガッ
       | / | .     人
       |/ |    <  >_Λ∩
      _/  | //. V`Д´)/>>610
      (_フ彡           /
614デフォルトの名無しさん:2009/02/05(木) 23:59:25
>>612
ふつー一発でわかります。
615デフォルトの名無しさん:2009/02/06(金) 00:09:58
>>610
なるほど・・・
616デフォルトの名無しさん:2009/02/06(金) 00:11:45
>>614
実務経験無い人は、無理にレスしなくていいよ
617デフォルトの名無しさん:2009/02/06(金) 00:15:53
>>614
スーパーハッカーですね
618デフォルトの名無しさん:2009/02/06(金) 00:16:53
=と==の間違えを見つけられないような人が実務やってるんですか。
619デフォルトの名無しさん:2009/02/06(金) 00:17:25
コンパイラが指摘するだろう。
Java/C#ならエラーだし、C++だって警告くらい出すぞ。
620デフォルトの名無しさん:2009/02/06(金) 00:23:09
>>619
そういえば、C#やjavaでも定数を左のおくスタイルの人っているけど、
ああいうのは、意味を分かってやってるのだろうか。
621デフォルトの名無しさん:2009/02/06(金) 00:43:16
そういうまあ過去のテクニックというか文化はどこから新世代の言語に伝搬するんだろうな
622デフォルトの名無しさん:2009/02/06(金) 00:55:16
まったくもってC++信者に説得力がない。
中規模クラス以上の開発で責任者やったこと奴いないの?
すくなくともデメリットくらい語れないと話にならない。
623デフォルトの名無しさん:2009/02/06(金) 00:57:20
無能じゃんって罵ってればプロジェクトが収束するなら一日中罵るわw
624デフォルトの名無しさん:2009/02/06(金) 01:00:01
警告を出さないようにコードを書くって、当たり前のことをやってない人が
実務に携わって、しかもけっこうな規模をやってるって事実のほうが怖い。
625デフォルトの名無しさん:2009/02/06(金) 01:02:19
C++語っちゃうようなやつにもいるよね
そういう奴とは二度と一緒に仕事しないけど
626デフォルトの名無しさん:2009/02/06(金) 01:02:36
定数を左に置くスタイルの人って、本を読んだり職場以外のコードを読んだりとかしないのかね?
627デフォルトの名無しさん:2009/02/06(金) 01:03:11
意味わからなくてもエラーが出て安全だろ。
628デフォルトの名無しさん:2009/02/06(金) 01:03:40
でも職場のコードよく読んでるやつのほうが一冊の本で頭よくなった気になれる奴よりまし。
629デフォルトの名無しさん:2009/02/06(金) 01:05:18
参考になるコードなら良いけどな
俺の職場のコードは腐ってる
読めば読むほど何も考えてないことが伝わってくる
まさにウンコ
630デフォルトの名無しさん:2009/02/06(金) 01:06:08
でも職場の代々受け継がれてるクセの濃いコードしか読んでないから、
定数を左に置くのがいいとか思っちゃうんでしょ?
631デフォルトの名無しさん:2009/02/06(金) 01:09:04
いまえらcppファイル1000個以上、合計100万行以上のプログラムの実装・管理を
やった経験くらいはあって語ってるんだよな?
632デフォルトの名無しさん:2009/02/06(金) 01:10:37
>>625
そんなんじゃ気が付いたら回りに誰もいなくて君一人だね
633デフォルトの名無しさん:2009/02/06(金) 01:11:36
>>632
警告すらも理解できない奴ばかりなの?
634デフォルトの名無しさん:2009/02/06(金) 01:13:15
>>633
現実を見ようよ
そんな立派なグラマばっかりいないから
635デフォルトの名無しさん:2009/02/06(金) 01:15:32
こえ〜w
さすがにこええ
警告をエラーにすればいいんじゃないの?
とんでもない回避されるけどw
636デフォルトの名無しさん:2009/02/06(金) 01:16:23
それで、
誰かLinusの書いたC++のコードを見たのか?
637デフォルトの名無しさん:2009/02/06(金) 01:17:40
>>631
スタイルの話題になると「俺は経験で」で言い出すやついるけど、
匿名でそれやっても、論拠にならないよ。

俺がみたいくつかの大規模で世間で評価されてるプロダクトのソースは
定数を左におくスタイルは採用してない。
638デフォルトの名無しさん:2009/02/06(金) 01:18:39
見た程度のレベルの人がなに言ってもねw
639デフォルトの名無しさん:2009/02/06(金) 01:19:20
経験も本人談だし。
640デフォルトの名無しさん:2009/02/06(金) 01:20:35
LinuxカーネルやGCCだってコンパイルするとボロボロ警告出てくるぜ…
641デフォルトの名無しさん:2009/02/06(金) 01:21:13
実績ある奴の経験談と本読んだ感想が同レベルだとでも?
642デフォルトの名無しさん:2009/02/06(金) 01:23:11
実績ある人のコードを読んだら、定数を左に置くスタイルじゃなかったから。
自称実績のある人じゃなくて、本当に実績のある人の。
643デフォルトの名無しさん:2009/02/06(金) 01:24:29
本人連れてきて書き込ませろよ。
本当に出来る奴ならどうでもいいって言うと思うぞ。
644デフォルトの名無しさん:2009/02/06(金) 01:26:32
まあダメな奴はコーディングルールをいくら用意しようが無駄だからな
645デフォルトの名無しさん:2009/02/06(金) 01:27:19
本当に出来る奴は面倒ごとを機械に任せられる奴
=を書き間違ってないかのチェックなんてコンパイラに任せればいいんだから左に定数を書くのが正しい
本当に出来るならそう言うはずだ
646デフォルトの名無しさん:2009/02/06(金) 01:27:49
>>643
そんなことはない。
定数を左のスタイルの話題は昔からある話題で有名で知ってる人は多い。
で、そのスタイルが少数派ってことは、どうでもいいじゃなくて、知ってて採用してないってこと。
647デフォルトの名無しさん:2009/02/06(金) 01:28:35
論理学から勉強しなおせ
648デフォルトの名無しさん:2009/02/06(金) 01:29:02
でもどうしても気持ち悪いなら無理して左に書いて生産性を落とさなくてもよい
と付け加えるのが真のプロフェッショナル
649デフォルトの名無しさん:2009/02/06(金) 01:31:14
ワーニングですらそんなものないのに何でかたくなに否定するかね
650デフォルトの名無しさん:2009/02/06(金) 01:31:58
定数を右に置くのは可読性のためだろ
一通り書いてテストしてる間は左に定数置いて
リリースする時に==の両辺を入れ替えてるんだよ
grepで一発だし==なら入れ替えても意味が変わる心配はない
みんなそうしてると思うんだけど
651デフォルトの名無しさん:2009/02/06(金) 01:33:05
動いてるソースを改変するなんてバカだろ
652デフォルトの名無しさん:2009/02/06(金) 01:34:34
つリファクタリング
653デフォルトの名無しさん:2009/02/06(金) 01:34:45
==の両辺の入れ替えに意味の変化は一切ないから改変じゃないよ
&&の入れ替えならダメだけど==は評価順不定だから
654デフォルトの名無しさん:2009/02/06(金) 01:34:48
有名書籍とか有名プロダクツのソースとかで、定数を左におくスタイルのやつがあったら、
これって例をだしてみればいいのに。
名前の出せない「俺がやった大規模プロジェクト」以外にもあるんでしょ?
655デフォルトの名無しさん:2009/02/06(金) 01:35:56
if( a(1) == a(2) ){}

int a(int v){ static float s = 100; s /= v; return s;}
656デフォルトの名無しさん:2009/02/06(金) 01:36:58
俺どっちでもいいから気にしたことないけどいくらでもあるんじゃないか?
それ縛りのコードは少ないだろうが。
657デフォルトの名無しさん:2009/02/06(金) 01:37:23
意味が変わるかどうかではなく、手を入れることがバカだと言っている
658デフォルトの名無しさん:2009/02/06(金) 01:37:44
653涙目w
659デフォルトの名無しさん:2009/02/06(金) 01:38:17
>>656
こんどから注意してみてみたら?
すごい少数派だと思うよ。
660デフォルトの名無しさん:2009/02/06(金) 01:38:55
>>655
不定だな
if( a(2) == a(1) )だとしても不定には変わりない
意味も動作も変わらない
661デフォルトの名無しさん:2009/02/06(金) 01:40:23
>>660あきらめろ
662デフォルトの名無しさん:2009/02/06(金) 01:40:38
戦争をワーとか言い出しそうな人が紛れ込んでるな
663デフォルトの名無しさん:2009/02/06(金) 01:40:44
お前の思い込みなどどうでもいい
664デフォルトの名無しさん:2009/02/06(金) 01:41:25
"".equals(s)とs.equals("")では意味も動作も違うと思うのだが
665デフォルトの名無しさん:2009/02/06(金) 01:43:11
if(0 == 5 == 3 == 5) printf("== 5 == 3 == 5 ==\n"); /* == 5 == 3 == 5 == */

grep一発でどうやるの?
666デフォルトの名無しさん:2009/02/06(金) 01:44:21
まさかとは思うけど
655のコードでif( a(1) == a(2) )なら偽でif( a(2) == a(1) )なら真になるとか
思ってる輩は紛れてないよな?
667デフォルトの名無しさん:2009/02/06(金) 01:44:38
あまりいじめんなよ。
人とプログラム書いたことないんだから。
668デフォルトの名無しさん:2009/02/06(金) 01:45:12
アホが涙目w
669デフォルトの名無しさん:2009/02/06(金) 01:47:15
>>666
まさかとは思うけど、お前はそうじゃないと思ってるの???
幼稚園からやり直せ
670デフォルトの名無しさん:2009/02/06(金) 01:49:11
int a(int v){ static int s; int t; t = s; s = v; return t;}

if( a(1) == a(2) ){}
if( 1 == a(1) ){}
671デフォルトの名無しさん:2009/02/06(金) 01:50:43
>>650
そんなアホな。
エンバグが趣味なんですか?
672デフォルトの名無しさん:2009/02/06(金) 01:51:37
左定数厨はプログラムが上から順番に実行されることも知らんのか
673デフォルトの名無しさん:2009/02/06(金) 01:51:57
釣り宣言まだぁ?
674デフォルトの名無しさん:2009/02/06(金) 01:53:10
コーディングルールとかコーディングスタイルってのが流行った時期があるから
メジャーなスタイルで定数を左辺に置くのもあると思うんだが、ちょっとぐぐった程度じゃでてこないな。

バカにしてるやつは若いヤツなんだろうけど、コンパイラがウンコな時代には役に立ったものだよ。
675デフォルトの名無しさん:2009/02/06(金) 01:53:11
>>670で結論出ただろ。
676デフォルトの名無しさん:2009/02/06(金) 01:55:38
>>670のa(1)とa(2)はどっちが先に呼ばれるかわからないから不定だな
if( a(2) == a(1) )だとしてもa(2)とa(1)のどっちが先に呼ばれるかわからないから不定だ
677デフォルトの名無しさん:2009/02/06(金) 01:57:34
不定って言えば逃げられるとでも思ってんのかw
678デフォルトの名無しさん:2009/02/06(金) 01:57:58
お前のプログラムの動作が不定なんだろw
679デフォルトの名無しさん:2009/02/06(金) 01:58:14
670でa(2)が先に呼ばれるわけないだろwwwwwwwwwwwwwwwwww
もうやめとけってwwwwwwwwwwwwwwwwwww
680デフォルトの名無しさん:2009/02/06(金) 01:58:30
>>676
不定ではあるが、「==のLHSとRHSの置換が常に等価なので置き換えても安全である」
という間抜けな主張への反証としては十分過ぎる例かと
681デフォルトの名無しさん:2009/02/06(金) 01:58:45
コンパイラがウンコな時代とか時代背景があるならわかるんだが
今なお使っている奴はなんなんだという
682デフォルトの名無しさん:2009/02/06(金) 01:58:54
左辺に定数置くとウォーニングでんのか?
683デフォルトの名無しさん:2009/02/06(金) 01:59:55
左辺に定数を置いたらダメな理由が不明すぎ。

自分のスタイルと違って見づらいっていうならまだしも、かっこ悪いとか時代遅れとか? 死ねよ。
684デフォルトの名無しさん:2009/02/06(金) 02:00:24
>>682
if (x = y) {..}
とか書くと今のコンパイラは大抵は警告を出す
が、別に比較式はif文だのwhile文だの中でしか使えないと決まっているわけではない
685デフォルトの名無しさん:2009/02/06(金) 02:01:24
なんだ、本物のバカばっかりか
http://www.kouno.jp/home/c_faq/c3.html#4

>>680
a(1) == a(2)もa(2) == a(1)もどっちも「不定」という意味で等価
どっちで書いたとしてもどっちが先に呼ばれるかわからないんだから
686デフォルトの名無しさん:2009/02/06(金) 02:02:08
つーか
"".equals(x)

x.equals("")
は意味が違うだろと

前者はreceiverがStringであることが確定している式で、xがnullでもよい
後者は確定していない(nullかもしれない)

本当は、二項演算をこのような形でしか書けないJavaがよくない
687デフォルトの名無しさん:2009/02/06(金) 02:02:11
お客に「前から動作不定だったんですよ!」って言い訳するの?
688デフォルトの名無しさん:2009/02/06(金) 02:02:48
馬鹿はお前。言い訳になってない。
689デフォルトの名無しさん:2009/02/06(金) 02:04:27
>>687
入れ替えようと入れ替えまいと、コンパイラのご機嫌で評価順なんていくらでも変わるんだから
遅かれ速かれ言い訳することになるだろうね
あんなコード書いてたら
690デフォルトの名無しさん:2009/02/06(金) 02:04:35
で、grep一発の件はどうなったの?

>>665は?
691デフォルトの名無しさん:2009/02/06(金) 02:05:55
お客に「悪いのは僕じゃない!」って言い訳するの?
692デフォルトの名無しさん:2009/02/06(金) 02:05:56
>>685
またひどいリンク見つけてきたな

>f() + g() * h()

>掛け算は足し算の前に起こるということはわかっているけれど、3つの関数のうちどの関数が最初に呼ばれるかはわからない。

そんなわけねーだろwww
693デフォルトの名無しさん:2009/02/06(金) 02:06:52
動作不定がコンパイラの機嫌だと思ってるのかよ!!!
694デフォルトの名無しさん:2009/02/06(金) 02:07:16
入れ替えてバグが出るようなコードは
たとえ入れ替えなくてもちょっとした弾みでバグが出るんだよ

だったら入れ替えても入れ替えなくても同じじゃないか、と言ってる
695デフォルトの名無しさん:2009/02/06(金) 02:07:36
恥ずかしすぎる。
696デフォルトの名無しさん:2009/02/06(金) 02:08:27
>>693
機嫌だよ
極端な話、コンパイルごとに評価順変えたっていい
それが不定(unspecified)の意味
697デフォルトの名無しさん:2009/02/06(金) 02:10:39
Javaは左辺を先に評価すると決められてる
左辺から評価するのが普通だろ
わざわざ右辺から評価する変態コンパイラがあるわけがない
698デフォルトの名無しさん:2009/02/06(金) 02:12:35
本の知識だけで本物のコンパイラを知らない子供が不定不定って騒いでるんだな
699デフォルトの名無しさん:2009/02/06(金) 02:17:32
規格票に不定と書いてあるんなら規格票が最優先だばかものども
700デフォルトの名無しさん:2009/02/06(金) 02:18:57
>>698
帰れよ
701デフォルトの名無しさん:2009/02/06(金) 02:26:32
ついに反論も出来なくなったかw

これに懲りたらもう二度と勝手に左辺と右辺を交換するなよ
評価順が変わってみんなに迷惑かけるからな
702デフォルトの名無しさん:2009/02/06(金) 02:47:15
>>692
さすがにランダムで順番決めるわけじゃないよ。
その文章は、コンパイラが違ったり、同じコンパイラでも最適化とかのオプション次第で変わるよと言う話。
703デフォルトの名無しさん:2009/02/06(金) 04:09:55
>>692
激ワロタww
704デフォルトの名無しさん:2009/02/06(金) 07:36:50
おまえら if (3 == a) の件で騒いでたのか。暇だなあw
これって誰かが「こう書けば間違って(3 = a)と書いた時検出できる」って提唱して広まったんだけど、
○"=="以外では意味が無い
○"=="でも定数相手以外では意味が無い
○直感的でなく読みにくい(人間は「aが3と等しければ」と思考する、逆はあまり得意ではない)
という理由から言うほど広まらなかったんだよな。
意外に、直感的でないというのは大きい理由で、流して読んでるときにこういう箇所で「ん?」って
止まっちゃうのって結構思考の邪魔になる。
今でも頑張って「3 == a」って書いてる奴はまあ、頑固というか論理的すぎるというか形式主義
というか、要するに「感覚」より「論理」の方が大事な奴なんだろうな。
コーディングやってると「感覚」を妨げることの方がよっぽど作業効率を落とすと思うんだけどね。
705デフォルトの名無しさん:2009/02/06(金) 07:41:50
普通は = にしても警告出るから a == 3 で全く問題ない
706デフォルトの名無しさん:2009/02/06(金) 07:46:04
わたしも昔は、定数左派だったが、いまではコンパイラが警告出してくれるので、どちらでもよくなった。
強いて言えば、読みやすい方(例えば右側)に書いている。
if ( foo >= 0 && foo < 256 ) よりも if ( 0 <= foo && foo < 256 ) の方が、読みやすいから、
こういうときは、左に書いている。まぁ、今回の話とは関係ないことだけど。

そろそろ、C++プログラマはウンコの話に戻せよ。
707デフォルトの名無しさん:2009/02/06(金) 07:51:15
>if ( foo >= 0 && foo < 256 ) よりも if ( 0 <= foo && foo < 256 ) の方が、読みやすいから、
こういう、数直線のイメージに拘ると称して意味不明な理屈を振り翳す奴ってよく居るよね。
前者なら「fooがゼロ以上で256未満」と素直に読めるのにね。
708デフォルトの名無しさん:2009/02/06(金) 08:03:36
わかるなー
if ( 0 <= foo && foo < 256 ) がif ( foo >= 0 && foo < 256 ) より読みやすいとは一切思わないね
まあこっちはそこまで読みにくくもないけど、
これの否定をif ( foo < 0 || 256 <= foo ) とか書かれると最悪なんだよ
こっちに関してはif ( foo < 0 || foo >= 256 ) の方が圧倒的に読みやすいに決まってるのに
数直線にこだわる奴は数直線で思考止まってるんだよね
709デフォルトの名無しさん:2009/02/06(金) 08:52:09
だからコーディングスタイルの話は他のスレでできるだろ。
ここはうんこのスレなんだからそれらしくだな
710デフォルトの名無しさん:2009/02/06(金) 09:41:31
ほんと簡単な話題だとくいつきがいいよな
左定数なんておまえら何回同じ話してんだっつーの
711デフォルトの名無しさん:2009/02/06(金) 10:47:13
自転車置場の議論ってやつだな。
ttp://0xcc.net/blog/archives/000135.html
712デフォルトの名無しさん:2009/02/06(金) 13:09:20
C プログラマは下らない議論でしか盛り上がれないからな。
713デフォルトの名無しさん:2009/02/06(金) 13:21:00
だな
C言語は文法が簡単なので雑談に流れやすい
C++になると言語仕様そのものが難解になるので雑談している暇がない

と言ったところか
714デフォルトの名無しさん:2009/02/06(金) 13:28:20
C++の言語仕様が難解ってどんだけ馬鹿なんだよ。
715デフォルトの名無しさん:2009/02/06(金) 13:36:13
C++の言語仕様が難解じゃないって言ってるってどんだけ馬鹿なんだよ
716デフォルトの名無しさん:2009/02/06(金) 13:41:06
バカばっか
717デフォルトの名無しさん:2009/02/06(金) 13:45:18
>>714
こういう奴にboostのソースを全部読み解けるかたずねてみたいものだ
718デフォルトの名無しさん:2009/02/06(金) 14:02:06
boostが難解なのであってC++の言語仕様が難解なのではない
719デフォルトの名無しさん:2009/02/06(金) 14:04:33
また言い訳始めよったか
720デフォルトの名無しさん:2009/02/06(金) 14:15:56
boost自体のソースはきれいに出来てるじゃないか
むしろboostを使うと
721デフォルトの名無しさん:2009/02/06(金) 14:55:10
言語仕様の話してんのに boost 持ち出すとか、どんだけ莫迦なんだろう。
722デフォルトの名無しさん:2009/02/06(金) 14:58:20
>>713
えーと、難解だから偉い、と言っているんでしょうか?
723デフォルトの名無しさん:2009/02/06(金) 15:17:18
>>707,708
Pythonで普段
if 256 <= a < 4096:
pass
って書いてたら、他の言語でも自然に 0 <= a && a < 256 って読み書きするし、普通に読みやすいよ。
724デフォルトの名無しさん:2009/02/06(金) 15:18:19
brainf*ckやwhitespaceのコードを読めばわかるが
言語仕様が単純明快でも高可読性には必ずしもつながらない
725デフォルトの名無しさん:2009/02/06(金) 15:19:40
>>708
否定するときは直感的に否定で書こうぜ。無理に or に書き直す必要は無い。
if ( !(0 <= foo && foo < 256))
726デフォルトの名無しさん:2009/02/06(金) 15:34:44
それならまだ
 if (〜)
  ;
 else
の方が…つか、style スレでやれと。何度も。
727デフォルトの名無しさん:2009/02/06(金) 18:08:16
>>725
Pythonは所詮スクリプト言語だし、効率なんてどうでもいい所で使うもんだからそれでもいいけどさ

if ( 0 <= foo && foo < 256 ) の書き方のもう一つの最悪な所として、柔軟性が全然ない
たとえばfooが負になることが滅多にないとすると、当然両辺の入れ替えを考えるわけだが
このまま入れ替えるとif ( foo < 256 && 0 <= foo ) という壮絶な式になってしまう
数直線にこだわるならif ( 256 > foo && foo >= 0 ) になるが、数直線としても向きが逆だし
ただ両辺を入れ替えるだけなのに全部書き直しだ

最初からif ( foo >= 0 && foo < 256 )ならそんなこと考える必要もないんだぜ
728デフォルトの名無しさん:2009/02/06(金) 18:47:24
何が壮絶なのやら
729デフォルトの名無しさん:2009/02/06(金) 19:08:09
>>727
>たとえばfooが負になることが滅多にないとすると、当然両辺の入れ替えを考えるわけだが
おれはそんなこと考えないから数直線で良いや。
いい加減、個人の感性の問題で、お前の感性に根拠なんて無いことを自覚しろ。
730デフォルトの名無しさん:2009/02/06(金) 19:09:01
Cプログラマって本当に暇なんだな
731デフォルトの名無しさん:2009/02/06(金) 19:20:37
C++って難解なんかい?

うわこれすげーおもすれー
732デフォルトの名無しさん:2009/02/06(金) 20:06:13
>>729
おいおい…&&は偽になりやすい順に、||は真になりやすい順に並べるのが当たり前だろ
そんなことも考えずにC使うなよ
733デフォルトの名無しさん:2009/02/06(金) 20:18:07
>>729
短絡評価(short circuit)って知ってる・・・よな?
734デフォルトの名無しさん:2009/02/06(金) 20:58:12
比較回数減るから速くなるって言いたいんだろ、知ってるよそんなもん
だがそんなのはコンパイラが最適化の時に決めるもんであって人間様が気にすることじゃない
可読性の方が大事
735デフォルトの名無しさん:2009/02/06(金) 21:09:32
>>734
コンパイラに期待しすぎ
736デフォルトの名無しさん:2009/02/06(金) 21:15:47
if(0 <= a && a < 256)
のときに
0 <= a の方が
a < 256 よりも
先に評価されるのは仕様で決まっていますか?
737デフォルトの名無しさん:2009/02/06(金) 21:17:47
>>734
ショートサーキットに反するから絶対にひっくり返してはくれないよ。

まあ、そもそもこんなところを手動最適化したところで
効果なんてたかが知れてる。
基本的に全部読みやすく書くべき。
738デフォルトの名無しさん:2009/02/06(金) 21:23:06
>>736
それに依存した書き方がされているのが当然だから
バグ入れるなよ
739デフォルトの名無しさん:2009/02/06(金) 21:27:54
>>734

バグニモマケズ
副作用ニモマケズ
標準ニ準拠シ
プログラマノ意図ヲ汲ンデ
空気ヲ読ンデ
適切ナ方ヲ最初ニオイテクレル
ソンナコンパイラニ 私ハナリタイ

無茶言うなよ(笑)
740デフォルトの名無しさん:2009/02/06(金) 21:30:26
>>739
その「副作用」は意味合ってんの?
741デフォルトの名無しさん:2009/02/06(金) 21:45:46
if ( foo >= 0 && foo < 256 ) のどこに副作用があるんだよアホか
(fooやifが変なマクロってのはなし)
742デフォルトの名無しさん:2009/02/06(金) 21:50:45
>>741
ああ、そこは一般論の話。
変数なら副作用は無いけど、↓

「リソウノコンパイラ」なら
hoge()>piyo()&&foo()==bar()
とかにも対応しているんじゃね?
そのときはきっと
プログラマノ意図ヲ汲ンデ
副作用がおきないことを(リソウノコンパイラが)理解した上で
空気ヲ読ンデ
適切ナ方ヲ最初ニオイテクレル
ソンナコン…(ry

っていう意味。
説明不足すまそ
743デフォルトの名無しさん:2009/02/06(金) 22:14:56
min < a && a < max みたいな上限と下限を指定する比較って
そもそもあまり書かなくない?

思い起こすと、C言語を覚えたばかりの頃はよく使っていて、
Pythonみたいな min < a < max があればいいのに、と思ったけど
今は全く使わない。

経験を積むと自然と使わなくなる書き方じゃないかなあ・・・多分
744デフォルトの名無しさん:2009/02/06(金) 22:15:39
エラー処理とか全くやってないのか
745デフォルトの名無しさん:2009/02/06(金) 22:22:48
入門者の頃と違って、エラー処理をちゃんと考え出すことも
そういう単純な範囲比較をしなくなる理由のひとつだろうね

もちろん単純に上限下限でくくって済むケースもあることは否定しないよ


746デフォルトの名無しさん:2009/02/06(金) 22:31:38
>>741
bool operator&&(int a, int b){printf("バカ\n");return 0}
747デフォルトの名無しさん:2009/02/06(金) 22:44:04
いや、沢山あるだろう・・・
748デフォルトの名無しさん:2009/02/06(金) 22:46:49
もちろん単純に上限下限でくくって済むケースもあることは否定しないよw
749デフォルトの名無しさん:2009/02/06(金) 22:57:18
プラスαがあっても上限下限でくくる部分はそう書くね
750デフォルトの名無しさん:2009/02/06(金) 23:38:18
くだらないことをさも意味があるかのように話すからよってくるなって言われるんだろうな
751デフォルトの名無しさん:2009/02/06(金) 23:59:10
>>746
それはさすがのC++でも許してない
752デフォルトの名無しさん:2009/02/07(土) 00:26:04
>(fooやifが変なマクロってのはなし)
つ「演算子のオーバーロード」
753デフォルトの名無しさん:2009/02/07(土) 00:43:58
754デフォルトの名無しさん:2009/02/07(土) 00:45:01
guro
755デフォルトの名無しさん:2009/02/07(土) 00:46:01
intとintの演算はオーバーロードできないぞ
それやるならこうしないといけない

Bar operator>=(Foo, int){/*...*/}
Bar operator<(Foo, int){/*...*/}
bool operator&&(Bar, Bar){/*...*/}
756デフォルトの名無しさん:2009/02/07(土) 00:47:34
int が別の型に置換されるマクロかもしれないじゃないか
757デフォルトの名無しさん:2009/02/07(土) 00:49:29
なるほどその発想はなかった
758デフォルトの名無しさん:2009/02/07(土) 01:11:40
IsRangeとかテンプレートでつくれよこのウンコやろう
759デフォルトの名無しさん:2009/02/07(土) 01:23:29
OrangeRange
760デフォルトの名無しさん:2009/02/07(土) 01:28:53
Boostにintervalといううんこがあるよ

Boost Interval Arithmetic Library
http://www.boost.org/doc/libs/1_37_0/libs/numeric/interval/doc/interval.htm
761デフォルトの名無しさん:2009/02/07(土) 03:16:02
#define int char
#define private public
762デフォルトの名無しさん:2009/02/07(土) 04:16:46
C++の優れている点
◎bool型
◎文字定数がchar型 (Cだとint型)
◎namaspace
◎メンバ関数 (structスコープ内限定の関数を宣言できる)
◎inline関数
◎引数省略時の解釈。 int f( ); が int f( void ); と等しい。
 Cだと引数は任意の意。

○static_cast等の新形式のキャスト (もっと短くして欲しいが…)
○デフォルト引数
○structがスコープを持つ。
 Cだとstruct内にstruct等を書いてもグローバルスコープ。

△参照
△変数の宣言がブロック先頭に限定されていない

まとめると
「型・スコープがより厳密になった一方で、記述の柔軟性がUP」
ですかね。
763デフォルトの名無しさん:2009/02/07(土) 06:24:37
for (;_;)//~~

while (T_T)//~~
764デフォルトの名無しさん:2009/02/07(土) 10:04:51
ここでアセンブラ廚の俺が登場
素直にLisp使え
765デフォルトの名無しさん:2009/02/07(土) 10:22:05
まずはLispでカーネルモジュールあたりを作ってから口出してもらおうか。

そういえば「出刃どらはC++で書きたい」というようなスレがLKMLであったような。
766デフォルトの名無しさん:2009/02/07(土) 11:17:06
テレビの制御モジュールではダメかね?
767デフォルトの名無しさん:2009/02/07(土) 11:39:18
デフォルト引数は手抜き野郎がチェックせずに関数仕様を変更する温床にしかなってない気がするんだが。
768デフォルトの名無しさん:2009/02/07(土) 12:18:23
デフォルト引数より名前つき引数をサポートしてホシィ
769デフォルトの名無しさん:2009/02/07(土) 13:09:11
>>768
これは同意
とはいえ、全ての関数呼び出しに名前付けろとか言われると
やりきれないけど
770デフォルトの名無しさん:2009/02/07(土) 13:23:54
クロージャが匿名クラスなら
名前つき引数は匿名構造体か
771デフォルトの名無しさん:2009/02/07(土) 13:26:48
最近のgccだと

 foo({.hoge = hogedata, .fuga = fugadata});

とかいけるんだっけ?
772デフォルトの名無しさん:2009/02/07(土) 13:40:46
hoge、fugaの型は?
773デフォルトの名無しさん:2009/02/07(土) 14:13:32
ほんとにできたよな、と試してみた。

#include <stdio.h>
struct hore { int hoge, fuga; };
void foo(struct hore *data) { printf("hoge=%d\n", data->hoge); }
int main(void) {
 foo(&(struct hore){.hoge = 1, .fuga = 2});
 return 0;
}

多相関数なんてないんだから、キャストなしでも警告程度で自動型判定して
くれてもいいんじゃないかとオモタ。
774デフォルトの名無しさん:2009/02/07(土) 14:44:13
>>771,773
C99からできるようになったんだよ。
前は、GCCの拡張だった気がするけど。
まぁ、それ使い出すともうC言語じゃないと思っているから、いまだに実際に使ったことはない。
いまだに、C89でも通るように組んでいる。(というかむしろ-std=c89 -ansi -pedanticでコンパイルしている)
#if (__STDC_VERSION__ >= 199901L)で、inlineとかrestrictとか使うようにしている。
可変引数マクロを使いたいと何度思ったことか。全ては、C89で通るように。
775デフォルトの名無しさん:2009/02/07(土) 15:20:41
それ、名前付き引数じゃなくて、複合リテラルだろ
776デフォルトの名無しさん:2009/02/07(土) 15:27:30
ちなみに、C++0xだと初期化リストでfoo({hogedata, fugadata});と書けるようになるはず。
777デフォルトの名無しさん:2009/02/07(土) 15:33:53
むしろ、C99,gccマンセー。
778デフォルトの名無しさん:2009/02/07(土) 15:35:27
>>774
可変引数マクロは最低限2つ引数がないと使えないという糞仕様なので
使わなくていい。なんでgcc拡張をそのまま採用しなかったのが意味不明。
C89で通したいならMACRO(())で今後もやるしなかいな。
779デフォルトの名無しさん:2009/02/07(土) 16:00:50
>>778
引数2つってどういうこと?
http://seclan.dll.jp/c99d/c99d02.htm#dt19990405
ここにはこういう例が載っているけど。
#define dbg(fmt, ...) \
 printf("debug:" fmt, __VA_ARGS__)
#define adbg(...)   \ //(1)これもOK
 printf("debug:" __VA_ARGS__)
780デフォルトの名無しさん:2009/02/07(土) 16:10:11
>>799
あれ?前試したときは

#define HOGE(FMT, ...)

みたいに一つは置石がないと ... を続けられなかった記憶があって
そう書いたんだけど、... 単品で通るね。

スマン、嘘情報でした _O_ (トンクス)
781デフォルトの名無しさん:2009/02/07(土) 19:59:11
C最強だろw
C++とかコロコロ言語仕様変わるし
糞仕様のオンパレードw
782デフォルトの名無しさん:2009/02/07(土) 20:40:21
と、C++に挫折したCプログラマが負け惜しみを呟いております
783デフォルトの名無しさん:2009/02/07(土) 20:41:47
Cで数十万行のものとか扱ってるけど
その8割方はschemeのコードから自動生成したものだったりする
Cはこういう使い方も比較的楽できるからいいね、C++でやろうとしたら
数倍難しい
784デフォルトの名無しさん:2009/02/07(土) 20:45:01
Cのコードを吐けるなら
C++のコードも吐けるだろ
ほぼ同じで動くんだから
785デフォルトの名無しさん:2009/02/07(土) 21:09:23
Cが低レベルな言語だから高レベルな言語からの変換がしやすいだけでしょ。
コンパイルができるとCに変換できるはほぼ同義じゃねーかよ。
パラダイムの違う高水準言語同士で機能をフルに使った変換とか難しくて当然じゃねーかよと。
786デフォルトの名無しさん:2009/02/07(土) 21:38:45
>>762
template もあるんじゃね
787デフォルトの名無しさん:2009/02/07(土) 21:42:34
>>783
それなら全部schemeで扱って、コンパイルのときだけCにすればいいってことだね。
つまりscheme最高ってこと?
788デフォルトの名無しさん:2009/02/07(土) 22:17:25
>>787
8割って書いてあるだろ。
それを無理矢理10割にしようとした結果が、C++のようなモンスター言語だ。
789デフォルトの名無しさん:2009/02/07(土) 22:22:50
まぁ確かに最近のC++はメタプログラミングに力入れてるね
790デフォルトの名無しさん:2009/02/07(土) 22:37:59
C++は糞言語
これだけはガチ
791デフォルトの名無しさん:2009/02/07(土) 22:43:23
その糞を拭えば、コアはすばらしく良い言語なんだよ
Cの膨大なライブラリもそのまんま使えるし
糞の上塗りさえやめてくれればいいんだけど
792デフォルトの名無しさん:2009/02/07(土) 22:56:15
糞は糞
C++はRubyよりも狂信者が多い
異端宗教者の集まりだしなw
793デフォルトの名無しさん:2009/02/08(日) 00:00:49
根拠のないアンチC++も多いってことは分かった。
794デフォルトの名無しさん:2009/02/08(日) 00:08:54
信者でもC++を他人に薦めるようなのは少数派だしね
795デフォルトの名無しさん:2009/02/08(日) 00:24:12
いや糞がついたものは洗っても食わないだろう普通
796デフォルトの名無しさん:2009/02/08(日) 00:25:55
都会の人間は堆肥を知らない
797デフォルトの名無しさん:2009/02/08(日) 00:31:09
江戸は、糞の再利用にかけては今も昔も世界最先端都市だったのになあ
潔癖症は中国農薬野菜でも食ってろ
798デフォルトの名無しさん:2009/02/08(日) 00:38:34
・メンバ関数
・アクセス修飾子
・new/delete演算子とこの2つだけの演算子オーバーロード
これだけでいいよ。継承は単一継承ならホントはあってもいいけど
継承を乱用する奴多いから要らないかな・・・
799デフォルトの名無しさん:2009/02/08(日) 00:39:39
ベースはc99ね
800デフォルトの名無しさん:2009/02/08(日) 00:39:53
テンプレートも入れといて。
801デフォルトの名無しさん:2009/02/08(日) 00:40:19
テンプレートも乱用されるからね・・・
802デフォルトの名無しさん:2009/02/08(日) 00:47:28
継承よりは副作用がないと思うんだ。
803デフォルトの名無しさん:2009/02/08(日) 01:29:13
なんでそんな四則演算のオーバーロードをいやがるん。
ベクトルとか行列とかクォータニオンとか複素数とか扱ったことないわけ?
804デフォルトの名無しさん:2009/02/08(日) 01:36:46
>>803
意味無いし生産性悪い書き方だから
排除すべきだろ

そんな特殊なケースのみを言語仕様に盛り込み
たがるアホがC++に多い影響でC++自体が邪教の
産物になってしまっただろ。
次期C++仕様もboostの製作陣から糞過ぎるって
痛烈に批判されてるしなw
805デフォルトの名無しさん:2009/02/08(日) 01:39:37
宇治社中で学んだ口だがオーバーロードいらん
806デフォルトの名無しさん:2009/02/08(日) 01:42:04
haskellみたいに関数を演算子として適用する明快な方法を提供していれば
また状況は違ったかもしれないが、
807デフォルトの名無しさん:2009/02/08(日) 01:47:03
>>803-804
意味はあると思うけど、指針が無くて個々人の感性に任されるから、
乱用されて他人から見たら直感的でない、ってケースがありすぎる。

結果、いっそ排除した方が良いというハメに。
808デフォルトの名無しさん:2009/02/08(日) 02:07:07
Prolog みたいに演算子を好きに定義できる言語もあるんだし
このくらいなんてことはないよ
809デフォルトの名無しさん:2009/02/08(日) 02:19:48
Prologで大規模開発してから言ってくれ
810デフォルトの名無しさん:2009/02/08(日) 04:38:56
演算子オーバーロードが無かったら…
stringとかvectorとか、めっさ使い勝手が悪くなると思うけど。

 record = name + "\t" + address + … ;

とか書けてたのが、↓になっちゃうんですが。

 record.assign( name ).append( "\t" ).append( address ) … ;
811デフォルトの名無しさん:2009/02/08(日) 05:00:46
そんなのどうでもいいというか良く使う機能で慣れてるから違和感ないだけで
慣れてなければPerl並に可読性悪い。
812デフォルトの名無しさん:2009/02/08(日) 05:04:55
演算子多重定義は要るよ派だけど、
C++のostringstreamとC#のStringBuilderでは後者のほうが使いやすいと思う。
そもそもiotreamの<<と>>が終わりの始まりだったな。
813デフォルトの名無しさん:2009/02/08(日) 05:41:31
記号地獄はもういやです
814デフォルトの名無しさん:2009/02/08(日) 05:43:58
CのDLL -> C++/CLIのDLL -> C丼のGUI
の構成でC++/CLIを使ってみた。
変態言語だと思った。

いや、C++は好きなんだけど…
スレ違いか・・・
815デフォルトの名無しさん:2009/02/08(日) 06:17:58
文字列の連結は + で行う言語が主流ではあるけど
& で行う言語や . で行う言語もあるんだよな。
816デフォルトの名無しさん:2009/02/08(日) 07:35:23
>>810
>  record.assign( name ).append( "\t" ).append( address ) … ;

record = name + "\t" + address + … ;
⇔ (python)
'%s\t%s' % (name, address)
⇔ (python)
'%(name)s\t%(address)s' % locals()
⇔ (glib)
g_strdup_printf( "%s\t%s", name, address);
817デフォルトの名無しさん:2009/02/08(日) 08:25:33
>>810
sprintfも知らない奴は発言するな
818デフォルトの名無しさん:2009/02/08(日) 08:34:05
>812
iotreamがC++入門者への糞設計洗脳プログラムとして作用してる。
819デフォルトの名無しさん:2009/02/08(日) 09:22:22
自分の頭が悪いだけなのに無意味な仕様って
テレビと同レベルだな
820デフォルトの名無しさん:2009/02/08(日) 09:38:16
お前ってテレビ大好きだなw
821デフォルトの名無しさん:2009/02/08(日) 09:38:33
>>812
その二つは用途が違うだろ。
C++のstringはイミュータブルじゃないからstringbuilder系のクラスいらないし。
822デフォルトの名無しさん:2009/02/08(日) 09:50:21
文字列の連結に演算子が要らない言語もあるね。
他の言語がどうだってのは余り意味がないよ。
823デフォルトの名無しさん:2009/02/08(日) 10:31:48
LinuxがC++不要言ってたんだし
2chのC++関連のスレ潰していこうぜ
824デフォルトの名無しさん:2009/02/08(日) 10:38:56
半端なとういうか
わからないならおとなしくbetterCとして使ってればいいのに
ヘタに手を出してクソコードを生み出してる奴を叩いてるのであって
825デフォルトの名無しさん:2009/02/08(日) 10:54:45
そりゃ、Linuxの開発にC++は邪魔だろうな。
Cはヘッダ共有しなくても、関数引数リストがわかっていれば他人の書いたソース・オブジェクトと連携できるが、
C++はヘッダ共有しないと話にならないし。
最初から統一された設計の下に作るならC++がいいが、大勢の思いつきの寄せ集め的開発手法にはあわんわな。
826デフォルトの名無しさん:2009/02/08(日) 11:20:47
名前マングリング位統一しとけよハゲ

ということか
827デフォルトの名無しさん:2009/02/08(日) 11:28:15
Linusは2ちゃんの味方。
彼はレベルが高いよ。
828デフォルトの名無しさん:2009/02/08(日) 12:23:26
>>803
ないんだろうな。数学コードまったく書かない文系なんだろ。
「特殊なケース」とかアホすぎる。お前ゲーム一切やるなと
829デフォルトの名無しさん:2009/02/08(日) 12:25:07
記号のオーバーロードがどんなに危険か想像つかない奴は幸せだよ
たいしたコード書いてないって自分で白状してるようなもんだ
830デフォルトの名無しさん:2009/02/08(日) 12:33:28
ゲームの場合は計算量を抑えるために
演算子オーバーロードを敢えて使わないケースもあると思う。
a = b * c; とか、無駄なテンポラリオブジェクトを作って、
そこからの代入が発生してしまうので、
これが行列だったりしたら結構無駄が多くなる。
Matrix a = b * c; なら最適化効くからいいけど。

演算子オーバーロードはもっと計算量がシビアに効いてこないプログラムや値で
使った方がいいと思われ。
まあ、分数や複素数程度ならいいんじゃない?
831デフォルトの名無しさん:2009/02/08(日) 12:38:42
つ Expression Template
832デフォルトの名無しさん:2009/02/08(日) 12:43:01
もう好きにすればいいじゃないか。
C++が使いたい奴は、勝手に使ってもらって構いません。
わたしとあなたが出会わなければいいだけです。

C++の演算子オーバーロードは、抽象データ型を直感的に(原始データ型と同じように)扱うためにあるんだよ。
演算子オーバーロードをしないのであれば、別にC言語で十分同じようなことはできる。
TMPは、したいと思うけど、あれはコンパイラががんばっているだけだから、
何か取り決めを決めて、Perlを通して、C言語を吐かせた後にコンパイルすれば、どうにでもなる。
833デフォルトの名無しさん:2009/02/08(日) 12:47:01
複雑な計算式になると、関数呼び出しだけじゃ訳分からんことになるので
演算子オーバーロードは貴重だぞ
834デフォルトの名無しさん:2009/02/08(日) 12:54:29
>>833
計算はFORTRANだろ、常考
835デフォルトの名無しさん:2009/02/08(日) 12:55:52
>出会わなければいいだけ
まったくそのとおり。
勝手に演算子オーバーロードでも使って、見た目キレイに書いて、
バグが出た時には勝手に死んでくれてればいいんだが、
オレのコードにそんな不便なものを混入されたら迷惑なんだよな。
836デフォルトの名無しさん:2009/02/08(日) 12:58:37
まぁぶっちゃけ演算子オーバーロードは
文字列と数学系以外使わないからどうでもいい

あとはboostが変態的な使い方してる位か

つうかC#にもあるんだがそれには文句ないのか
837デフォルトの名無しさん:2009/02/08(日) 12:59:06
1 * 2は*(1,2)っていう関数適用の構文糖衣
ただその構文糖衣に「かけ算」っていう暗黙の解釈が存在するのが混乱の元になってるんだろうよ
オーバーロードなんて((Int,Int), *)と((MyT, MyT), *)っていう代数構造を示す組が同時に存在してるだけじゃん
それに伴う暗黙の変換は場合によっちゃ厄介だけどさ
838デフォルトの名無しさん:2009/02/08(日) 13:00:03
>>835
数値クラスの場合は関数で書いた方がバグは多いと思うぞw
839デフォルトの名無しさん:2009/02/08(日) 13:03:36
バグを減らすなら暗黙の型変換を一切禁止しちまえばいい
840835:2009/02/08(日) 13:21:03
バグが出やすい出にくいの話なんてしてないよ。
バグった時にひどい目に逢うと言っている。
演算子オーバーロードだけじゃない、継承もそうだし、コンストラクタもそうだし、
カプセル化と称するインターフェイスの共通化もそうだ。
オブジェクト指向はなんだか宗教みたいになってるよ。たいした功績も無いまま、
キミ達のような信者が必死に信仰してる。
そういう信者が多い方がこっちとしては希少価値が上がって助かるけどなw
841デフォルトの名無しさん:2009/02/08(日) 13:21:47
a * b - c * d

a.multiply(b).subtract(c.multiply(d))
842デフォルトの名無しさん:2009/02/08(日) 13:23:56
論理記述より数式記述のほうが直感的というのもどうかと思うが
843デフォルトの名無しさん:2009/02/08(日) 13:26:39
酷い目に逢うという思い込みで語られても
844デフォルトの名無しさん:2009/02/08(日) 13:26:54
メンバ関数の呼び出しも構文糖衣なんだよな
thisもパラメータであることを考慮してみると
xの型をTとしてx.fって呼び出しはcall(x,T::*f)であると考えられる
845デフォルトの名無しさん:2009/02/08(日) 13:27:31
ひどい目に合うって経験談だろ。
846デフォルトの名無しさん:2009/02/08(日) 13:27:34
外部関数をメンバ関数であるかのように呼べる言語もあるね
847デフォルトの名無しさん:2009/02/08(日) 13:27:57
>>845
具体例を挙げない体験談ほど胡散臭いものは無い
848デフォルトの名無しさん:2009/02/08(日) 13:30:00
>>847
まあそうかも知らんがめんどいしこれだけのやつらが言うって言うのも何かあるとは思うだろ。
キミはどのくらいの規模のプロジェクトをどんな立場でどのくらいやってきたんだい?
849デフォルトの名無しさん:2009/02/08(日) 13:33:10
構文糖衣かどうかより、シンプルな問題はシンプルに書きたい。
その辺り C言語はバランスよく出来てる。

その意味では、string の + はアリだと思うけど
一般のクラスに対しても + を overload できるのはやりすぎちゃったよね
850デフォルトの名無しさん:2009/02/08(日) 13:35:12
何年も保守されてるプログラムでも
普通に文字列の + とか使われてるが、
何の問題も起きた事無いけどな。
851デフォルトの名無しさん:2009/02/08(日) 13:35:17
>>849
やりすぎとはまったく思わない。
必要ないときは使わなければ良いだけ。
852デフォルトの名無しさん:2009/02/08(日) 13:35:38
そもそも隠蔽化と継承・多態はセットである必要があるのか?
隠蔽化だけならモジュールプログラミングなんだっけ?
853デフォルトの名無しさん:2009/02/08(日) 13:36:18
>>851
きみみたいなのがプロジェクトで深刻な問題を引き起こしてるんだよって話
854デフォルトの名無しさん:2009/02/08(日) 13:38:21
だから具体例上げろよカス
855デフォルトの名無しさん:2009/02/08(日) 13:39:54
一般化の利点は取捨選択ができること
stringの+とか一部だけ許すってのは、その一部のクラスを言語の仕様に組み込んでしまうということ
特殊化より一般化
856デフォルトの名無しさん:2009/02/08(日) 13:40:13
まあプロジェクトリーダーになったらわかるよ。
なれないと思うけど。
857デフォルトの名無しさん:2009/02/08(日) 13:41:00
ゴミを大量生産する一般化。
858デフォルトの名無しさん:2009/02/08(日) 13:42:47
>>849
言語仕様としてはアリだと思うけど。
どう使うかは設計レベルだから、言語仕様ではなく実際の運用の話になるんではないか?
859デフォルトの名無しさん:2009/02/08(日) 13:43:40
それは取捨選択ができない人間が使ってるだけかもしれない、それだけの根拠で言語を叩くのは間違い
ただ、使えない人間が沢山存在するような言語である点は褒められたものではない
860デフォルトの名無しさん:2009/02/08(日) 13:45:44
>>859
それは個人で使うならいいけど大規模プロジェクトでは問題ありと結論できない?
C++は当初(今も?)大規模開発での有用性をうたってたけど
861デフォルトの名無しさん:2009/02/08(日) 13:47:49
そんなことを言い始めたら、どの言語も程度の差あれ、全て問題ありだろ。
862デフォルトの名無しさん:2009/02/08(日) 13:47:59
MSやgoogleは、とにかく優秀な人間を集めてさえいれば大丈夫、と結論付けたようだな
他にそんなことが出来るところがあるかどうかはともかく
863デフォルトの名無しさん:2009/02/08(日) 13:48:20
程度の差が問題なんだろ
864デフォルトの名無しさん:2009/02/08(日) 13:50:13
だな
全部アセンブラで書くかって話だ
865デフォルトの名無しさん:2009/02/08(日) 13:51:21
そこまで言わなくてもCでいいじゃん
866デフォルトの名無しさん:2009/02/08(日) 13:52:34
Cなんてメモリリークさせ放題の糞言語だろ
867デフォルトの名無しさん:2009/02/08(日) 13:53:56
え?w
868デフォルトの名無しさん:2009/02/08(日) 13:54:02
「子供の手の届くところに置いてはいけません」ってのがふと浮かんだ。
869デフォルトの名無しさん:2009/02/08(日) 13:54:14
速度があまり要求されないならJava、そうでないのならC
これで十分だけどそう結論がついちゃったら一部のコン猿達がおまんま食い上げだから
C++は凄いとかLLでコスト削減とか関数型がクる!とか色々
870デフォルトの名無しさん:2009/02/08(日) 13:55:03
>>867
malloc使ってメモリリークしてないプログラムを見た事が無い
Cは糞言語
871デフォルトの名無しさん:2009/02/08(日) 13:56:13
メモリーリークにおいてmalloc/newに違いがあるの?
スマートポインタ云々はまったく別問題だぞ
872デフォルトの名無しさん:2009/02/08(日) 13:59:40
スマートポインタ云々を別問題にされると困るんだが
873デフォルトの名無しさん:2009/02/08(日) 14:00:25
まあ、C++は良くも悪くも面白い言語ではあるよ。
。。。最初だけなw
874デフォルトの名無しさん:2009/02/08(日) 14:00:40
>>870
たぶん、3つかそこらしか見たことが無いんだろうな
丁寧に書けばCでもアセンブラでもメモリリークなんて起こさないよ
875デフォルトの名無しさん:2009/02/08(日) 14:02:48
>>870
>malloc使ってメモリリークしてないプログラムを見た事が無い
私がいるセカイはこんなに糞なんですよ、という告白ですか。
876デフォルトの名無しさん:2009/02/08(日) 14:03:29
つまりC++上で派生した技術をC++の利点として挙げているわけですね。
それは必ずしも間違ってはいないけど
当初C++がCへのトランスレーターとして存在していたことをみても
C++のメリットとは言いがたいし、そもそも組み込み系のCとかだと違うアプローチで
メモリを扱うことによって回避している。
877デフォルトの名無しさん:2009/02/08(日) 14:05:08
>>874
演算子オーバーロードはちゃんと使える人が少ないから糞で、
mallocはちゃんと管理できる人が少なくても丁寧に書けば大丈夫!か。
何というダブルスタンダード。
878デフォルトの名無しさん:2009/02/08(日) 14:05:55
メモリの管理もできないような人は、プログラミングしないでください。
malloc()で、メモリリーク起こす人がいるから、C言語が糞言語だと言うのは、
演算子オーバーロードで、混乱を招く人がいるから、C++が糞言語と言うのと同じだ。
使う人が問題なだけであって、それ自体は問題ではない。
879デフォルトの名無しさん:2009/02/08(日) 14:07:43
特にエラー時のメモリリーク管理が出来てないプログラムが多い。
あるいは、管理はできてるけど、ifの中に毎回大量のfree書いてるような糞コードとか。
880デフォルトの名無しさん:2009/02/08(日) 14:08:29
いやいやスマートポインタがあるからなんでもOK!っていうデスマプロジェクトがあってねw
夢の技術を妄信しておれたち頭良すぎるから納期に間に合わずバグてんこ盛りで納品!
もうあほかとね。昔から自前で回避してた技術をすべて否定して夢の技術を妄信するってどうなんかと。
881デフォルトの名無しさん:2009/02/08(日) 14:09:26
多分それ、newを生で使ってもリークし放題なプログラム書くだろうな。
882デフォルトの名無しさん:2009/02/08(日) 14:11:21
俺組み込み系だからよくわからないんだがスマートポインタ使えば回避できる問題ってなんなの?
newもmallocも正しいタイミングで開放できなきゃ分断化でリークと変わらず問題がでるんだが
883デフォルトの名無しさん:2009/02/08(日) 14:15:12
そもそもC++は例外があるからなあ。
自分で例外使わなくても、ライブラリが例外投げることもある。
ちゃんと毎回try-catchしてdeleteしてんのか?
884デフォルトの名無しさん:2009/02/08(日) 14:15:33
原理がわからないまま便利な機能だけを使ってもロクなことにならないってことだな
885デフォルトの名無しさん:2009/02/08(日) 14:18:30
COMの扱いが分からずCComPtr使わずリークさせてるのもあったな
886デフォルトの名無しさん:2009/02/08(日) 14:22:46
スマートポインタの仕様を使ってコードが特定の状況において、
メモリリークを発生させないことが証明できない限りは安全とか言っちゃ駄目なんだね
コメントに証明を書かないとね
でもそこまでするならコードが仕様の証明になる言語が欲しいわ
887デフォルトの名無しさん:2009/02/08(日) 14:25:10
つまりくれくれ君、かつスマートポインタ使ったんだから
このバグはスマートポインタのせいだから直しませんよってスタンスなんだね。わかります。
888デフォルトの名無しさん:2009/02/08(日) 14:26:00
スマートポインタって、馬鹿のための機能って感じだよね。
RAII 程度に抑えておけばよかったのに、欲張ったあげく
ポインタを完全に置き換えられるわけでもないから
結局新しいバッドノウハウを生み出している。

スマートポインタ使う時に気を回す手間で、
まともに free やdelete が書けるよ。まともな人なら
889デフォルトの名無しさん:2009/02/08(日) 14:28:42
そう主張する人に限って例外安全に書けてないんだよな
890デフォルトの名無しさん:2009/02/08(日) 14:29:46
プロセス終了すれば開放されるから別にいいじゃん
891デフォルトの名無しさん:2009/02/08(日) 14:30:04
まともな人が書いてまともじゃない人がメンテする時もあるからねぇ。
そもそも例外とかスマートポインタを使わないメモリ管理は、free/deleteの箇所が分散して、まともな人でも見落とす/見づらいコードになりやすい。
892デフォルトの名無しさん:2009/02/08(日) 14:30:28
実行中にどんどんメモリ増えたら困るじゃんw
893デフォルトの名無しさん:2009/02/08(日) 14:31:57
そらスマートポインタにしろなんにしろ制限があるからね
原則として特定の状況の元、リークしない事を保証するって仕様なんだから
必要条件が満たされない状況においてはリークしない保証ができないし
だから「スマートポインタのせいだから直しません」ってのはまず無理だと思うがね
894デフォルトの名無しさん:2009/02/08(日) 14:32:21
あたりまえだろ
895デフォルトの名無しさん:2009/02/08(日) 14:32:40
まあGCほどオバカ仕様じゃないからね。
896デフォルトの名無しさん:2009/02/08(日) 14:35:40
FireFoxもGC採用してからアホになった
897デフォルトの名無しさん:2009/02/08(日) 15:04:48
毎日再起動すればいいじゃん
みんな無駄に求めすぎ
898デフォルトの名無しさん:2009/02/08(日) 15:11:32
>>897
お前はGCよりオバカそうだな。
899デフォルトの名無しさん:2009/02/08(日) 15:19:37
>>898
私は君みたいにおりこうさんじゃないからね
君たちがちゃんとやってくれればいいんだよ
900デフォルトの名無しさん:2009/02/08(日) 16:07:03
かしこまりました。
その代わり給料上げてね。
901デフォルトの名無しさん:2009/02/08(日) 16:11:18
>>831
残念ながら式テンプレートでも、排除しきれない例がある。
ttp://d.hatena.ne.jp/Cryolite/20040513
operator =とは別に、一時オブジェクトを生成しないassign関数を用意しているから使い分けろという形。
902デフォルトの名無しさん:2009/02/08(日) 16:11:56
FireFoxでニコニコ見てるときガクガクするようになったのはGCしてたからなのか
903デフォルトの名無しさん:2009/02/08(日) 16:22:50
flashで動画再生するとmplayerで再生するより2倍(athlon64 3000+でのcpu使用率比)重くなる
904デフォルトの名無しさん:2009/02/08(日) 17:41:24
アセンブラから上は全部構文糖なんだよ。
あの構文糖は甘すぎて不健康とか飴玉なめながら言ってんじゃねーよ、とか
思いますです。
905デフォルトの名無しさん:2009/02/08(日) 17:53:34
アセンブラも構文糖だろwww
906デフォルトの名無しさん:2009/02/08(日) 18:07:43
構文糖衣を全否定するならbrainfackでCやC++と同等の生産性をあげてくれ。
C++は構文糖衣が副作用を伴いすぎてることが問題。
なかには糖衣ですらないものも。
907デフォルトの名無しさん:2009/02/08(日) 18:26:19
C/C++はbrainf*ckの構文糖ではないが・・・
908デフォルトの名無しさん:2009/02/08(日) 18:28:33
>>906
oh,miss spell
909デフォルトの名無しさん:2009/02/08(日) 18:29:02
構文糖衣つまり、Syntactic Sugarを勘違いしてないかな。
既にある構文と完全に同じ意味の構文として置き換えることのできる構文のことでしょ。
例えば、C言語で言うところの(*(p + i))とp[i]の関係や
char a[] = {'f', 'o', 'o', '\0'}とchar a[] = {"foo"}またはchar a[] = "foo"の関係など。

>>904,905
意味不明だな。これがC言語使いの発言なら、とても恥ずかしく思う。
ああ、C++使いの発言でありますように。
910デフォルトの名無しさん:2009/02/08(日) 18:31:58
>>906
Fuck you
911デフォルトの名無しさん:2009/02/08(日) 18:33:17
マシン語に構文がないと思ってるのだろうか?
912デフォルトの名無しさん:2009/02/08(日) 18:35:42
fuch↑you↓
913デフォルトの名無しさん:2009/02/08(日) 18:36:15
フーホヨウ?
914デフォルトの名無しさん:2009/02/08(日) 18:39:19
芙蓉
915デフォルトの名無しさん:2009/02/08(日) 18:54:06
916デフォルトの名無しさん:2009/02/08(日) 18:59:12
                   ,  -――-  _
       , - _ ニニ = ー ' ´           ` ヽ 、
    , ',´ィ ' ´                          \
   / '/             ___    、     、  ヽ //ヽ
. / '´, '   /    ,  ,...:.:.':.´:.:.:.:.:.:.:.:.:.:.:.:.:`:.:.:.ヽ     ヽ  冫:;ィ::::;'  __
 '′/  ,/     /':.:.:.:.;:. -―¬¬¬―- 、:.:ヽ     ヽ/:/,.l:::::l':´_ハ
  / .,.,''  ,    /:,: '´             ` ',    ',//;:l::::;'´ /:::/
  ,' //  /    ,'´   i    l   ! .  |     !   ,      r '´ l::〈 /::::ノ
 i /.,'  /    l   i  l __tハ l ! .| t T¬ ト l、 !      ト、 !:::l /:; '
 l./ .l  ,'!      l  ,レ'T´ ll! !.l, l  li. |', ト, _!_l `!      lヾ':.l::::!l::::l
 l,' l  ! !      !  l', l ,ゝェ 、',|',l',. ! !.l >' ,r 、 ヽ,,'l     l::ヾ:!:::|.l::::!
   !  l !      ', . l ' / /.n.',` .'|',| '!  l 0 l  '' !    .l;:::l::ー':;'::/
   ',  !. l     '., ',::''::.ヽニ.ノ, .:    ::... ミニ'r  l.   !  ll::::ト:ヾー'
    ', ! !      ヽ':;:::.` ̄   ..::.        ,' .  l.  !l::::! ';::':,
    ', l l          ';`::::..   .::::::'         ,'   l   !.';:::', ':;:::':,
     '.,! !         ';::::::::...:::::::::r--ァ     ..;'  .l l!  l ';:::', l';::::',
.       !     l   lヽ:::::::::::::::::ー.′   ..::;:;'   l .l!  !  ';:::':!,';::::',
         ! l      !.  !  ` 、:::::::::::  ...::;:::'::/    ! ,'!. /  ヽ::::':,!::::!
       ! l    .l  .l  !   `ヽ:、:;::::':::::::/     ! ,','./ l   ヽ:::';:::l
       l l!   ', . ト、. ト、',、    !:::::::::::/   , / ./// ト、、 .l! !:::ト'
       l ハ .  ', ',ヽ ', ヽ',\   !::::/   ///>、 、 ! ヽ!', l.l,'';;';!
917デフォルトの名無しさん:2009/02/08(日) 19:07:18
もう900越えてんのかw
みんな好きだなあ
918止しました。。。:2009/02/08(日) 20:53:29
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
919デフォルトの名無しさん:2009/02/08(日) 20:57:06
止まるの?
920デフォルトの名無しさん:2009/02/08(日) 21:03:10
>>917
この景気だし暇なんだろ。
921デフォルトの名無しさん:2009/02/08(日) 21:52:35
Linux is obsolate!
Linus is 釣り師!
922デフォルトの名無しさん:2009/02/08(日) 23:17:35
>>916
誰だよw
923デフォルトの名無しさん:2009/02/09(月) 00:09:34
>>914,915
924デフォルトの名無しさん:2009/02/09(月) 00:21:36
糸電話だな
925デフォルトの名無しさん:2009/02/09(月) 00:28:39
>>837
それは甘い
1+2+3
ではどうなると思う?
1+2の結果を一時オブジェクトにコピーして、その一時オブジェクトのメンバオペレータが呼び出されて+3の演算が行われて・・・となるよ。
(+ 1 2 3)
とかなら何度も一時オブジェクトが生成されない。
926デフォルトの名無しさん:2009/02/09(月) 00:34:56
>>826
そうではない。
誰かがクラス定義をちょっといじると基本的に全部コンパイルしなおしとか。
クラスを使うだけなら、メンバ関数の仕様を固めておけばいいだけだが、
クラスの中をいじると、基本的にクラスメンバなんてメンバ関数にとってはグローバル変数同然なので影響はクラス全体に及ぶ。
統一した意思の下でクラスをいじるなら問題ないけど、勝手な思惑でクラスをいじられると影響する範囲が広すぎる。
それこそ、オーバーロードや派生がどうなっているかソースから追うとかいう自称Cエキスパート君のようになる。

ま、これはLinux風な開発をしている場合の話であって、業務で誰かが統括してれば本来起こるはずはない問題だと思うけどね。
927デフォルトの名無しさん:2009/02/09(月) 00:41:53
>>926
バザールモデルで統一的な規約を強制しての開発はしにくい
ってことを言ってるのかな

>>826が言ってるのは、ABIがグダグダ&ソース依存性が高い(例えば
テンプレートライブラリはC++からしか利用できない上に、
ほとんどの処理系ではソースレベルでの利用となる)等の理由により、
低レベルのシステムプログラミングやライブラリ開発には結局向かない
(それ向きの言語であると喧伝されているが)ってことだろう

それぞれ別の、独立した問題だな
928デフォルトの名無しさん:2009/02/09(月) 01:01:55
>>927
前半のとおりです。
だから、Linusがウンコと言ったところで、開発手法が違えばウンコではないわけでね。
とはいえ、複数人でソース分けて作るのは面倒くさいなぁ。
ヘッダの他人が作る部分にプレースホルダ入れてても、最後にマージとか面倒だな。
.o作るだけでもヘッダの依存性が高すぎる。
929デフォルトの名無しさん:2009/02/09(月) 07:07:20
>>926
構造体いじっても同じことじゃねえか?
930デフォルトの名無しさん:2009/02/09(月) 12:54:46
>>926
ソースから追う以外の方法って何?
仕様書から?
931デフォルトの名無しさん:2009/02/09(月) 15:43:36
そこでCOMです
932デフォルトの名無しさん:2009/02/09(月) 20:07:32
腐った沼地にビルは建たんよ。
933デフォルトの名無しさん:2009/02/09(月) 21:45:55
>>930
オーバーロードや派生なんてのはクラス設計の時点で決まっているものだから、設計図がきちんとしていればコードを追う必要はないでしょ。
設計図が各人の頭の中にバラバラにあればコードを追わないといけないが。
934デフォルトの名無しさん:2009/02/09(月) 21:51:44
つまり、C++はアジャイルに向かないポンコツ言語って事
935デフォルトの名無しさん:2009/02/09(月) 21:52:24
boostの設計の時点っていつかな
936デフォルトの名無しさん:2009/02/09(月) 21:55:10
>設計図がきちんとしていれば
果てしない理想主義だな
貴族というか大名というか
世の中の何割の連中がそんな環境でコーディングしてるんだか
937デフォルトの名無しさん:2009/02/09(月) 21:57:30
設計も信用できない
コーディングも信用できない
プログラミング言語も信用できない
クライアントも信用できない
会社も信用できない
938デフォルトの名無しさん:2009/02/09(月) 22:05:44
自分も信用できない
939デフォルトの名無しさん:2009/02/09(月) 22:26:13
コンパイラも信用できない
940デフォルトの名無しさん:2009/02/09(月) 22:28:09
937-939の中で一番信用できるのはコンパイラだな
941デフォルトの名無しさん:2009/02/09(月) 22:29:07
いまの所信じるのはISO/IEC 14882:2003だけでいい…
942デフォルトの名無しさん:2009/02/09(月) 22:33:25
>>933
そんなレベルまで設計でやってるのか。
効率わるー。
943デフォルトの名無しさん:2009/02/09(月) 22:37:32
だいたい、バグった箇所を特定するためにはコード追うしかないじゃん
設計図眺めてバグ取れるのか?
944デフォルトの名無しさん:2009/02/09(月) 22:41:37
設計そのものに問題があるとバグの数も増える
かといってその時点で設計見直しても後の祭
945デフォルトの名無しさん:2009/02/09(月) 22:42:16
お前らほんとにC++プログラマ?
946デフォルトの名無しさん:2009/02/09(月) 22:45:28
設計なんてコード書きながらやりゃええがね。
10年もコード書いてりゃ勘で何とかなるわ。
947デフォルトの名無しさん:2009/02/09(月) 22:46:06
ExcelマクロとWSHとdebug.exe使ってるただの事務員ですよ^^
948デフォルトの名無しさん:2009/02/09(月) 22:49:31
仕様レベルの設計なら必要だけど、クラスがどうとかオーバーロードがどうとかって
コーディングレベルは設計いらんだろ。
949デフォルトの名無しさん:2009/02/09(月) 22:51:47
プログラミングは設計です
タイピングの段階でのことなら知りませんけどー
950デフォルトの名無しさん:2009/02/09(月) 23:05:32
>>943
オーバーロードがどうなってるかとか、派生の関係がわからないとか、そういう次元のバグとりなのか?
それならコードを追わずにクラス図からやり直せ。
951デフォルトの名無しさん:2009/02/09(月) 23:10:27
クラス図なんか描くところあるのかよって一瞬思ったけど、
今日読んだブログに、クラス一個つくるのに承認印が必要だけど、これって誰得って
文句書いてあったな。
952デフォルトの名無しさん:2009/02/10(火) 00:06:31
>>951
どこ?
953デフォルトの名無しさん:2009/02/10(火) 00:09:37
同じところを見てるかわからないけど、品質管理ってそういうもの

「ハンコがないとクラスも作れない」、というのは当たり前で、
気軽にクラスを作れるグダグダ開発がどこでも通じるってのがおかしい
954デフォルトの名無しさん:2009/02/10(火) 00:10:50
955デフォルトの名無しさん:2009/02/10(火) 00:18:28
きっとただのタプル構造体やRAIIクラスにまでハンコ要求してるんだろう
956デフォルトの名無しさん:2009/02/10(火) 00:26:21
はんこを押せば品質が上がるとでも思ってるんだろうな...
957デフォルトの名無しさん:2009/02/10(火) 00:29:28
悲しいけど信頼されてないってことだから、少しずつ信頼度を上げていくか、めんどくさいからプロジェクトから去るかのどっちか。
958デフォルトの名無しさん:2009/02/10(火) 00:32:16
>>957
信頼度あげても、変わらないんじゃね?
ベテランだったり優秀ならハンコなしでもOKってシステムなら、信頼されてないってことになるけど。
959デフォルトの名無しさん:2009/02/10(火) 00:36:13
もう、Class Main に全部入れればいいよ。
960デフォルトの名無しさん:2009/02/10(火) 00:38:49
そのクラスにハンコは押せんな。
961デフォルトの名無しさん:2009/02/10(火) 00:48:49
思いつきでチョロチョロとクラスを増やすからハンコが面倒くさいんだろ。
最初から一気にデザインしてからハンコもらえばいいだけのこと。
単に、オブジェクト指向は全体像を把握せずに端からコーディングしたら破綻するというだけのことで、C++がどうこうという話じゃないね。
962デフォルトの名無しさん:2009/02/10(火) 00:55:13
最初から全部、使うクラスを洗い出すなんてムリ。
フレームワークにメソッドやメンバ変数をガシガシ追加して、自分じゃまったくクラス作らない
みたいなスタイルなら可能だけど。
963デフォルトの名無しさん:2009/02/10(火) 00:57:57
pimplするとハンコ2ついるのかな
964デフォルトの名無しさん:2009/02/10(火) 01:14:05
>>962
そのままコードに落としこめるくらいまで細かく設計すれば可能だけど、
そういうのってけっきょくコンパイラの機能に頼らずに頭の中で
コーディングしてるのと同じだしな。
965デフォルトの名無しさん:2009/02/10(火) 01:27:50
全部は無理でも全体を見通せるぐらいの設計はしような。
966デフォルトの名無しさん:2009/02/10(火) 01:32:03
全体見通すって何のためのカプセル化だよ
967デフォルトの名無しさん:2009/02/10(火) 01:35:16
全部グローバル変数で作るのとなんもかわらんじゃないか。
968デフォルトの名無しさん:2009/02/10(火) 02:31:06
プログラミングは製造じゃなくて設計だって何度言えば分かるんだ
969デフォルトの名無しさん:2009/02/10(火) 02:47:49
>>968
プログラムは設計じゃなくて政治だって何度言えば分かるんだ
970デフォルトの名無しさん:2009/02/10(火) 14:52:14
プログラマは経営者とかいう意見もあったな
分裂君の言うことだから9割ネタだろうけどさ
971デフォルトの名無しさん:2009/02/10(火) 15:40:04
Linus は頭のいい人間なのに、成功しなかった理由がこれで解った。

世間には、優秀なプログラマと、おバカなプログラマがいる。
優秀なプログラマには力を存分に発揮してもらわなければならない。
おバカなプログラマにも、優秀なプログラマの足を引っ張らない
ようにしながら、それなりの仕事をしてもらわなければならない。
C++は、それを実現しやすい点でCよりも優れているのだよ。
972デフォルトの名無しさん:2009/02/10(火) 15:48:57
>>971
ちょっと待てwww
Linus以上に成功したプログラマが世界に何人もいると思ってるのか
973デフォルトの名無しさん:2009/02/10(火) 15:54:32
>>971
> Linus は頭のいい人間なのに、成功しなかった理由がこれで解った。

完全に間違った事をここまで自信を持って言う奴がいたとは。
974デフォルトの名無しさん:2009/02/10(火) 15:55:30
ビルゲイツはBASICだけで世界有数の長者になったからなあ。
Linusは技術に精通し全てをプログラミングにつぎこんでも
せいぜい日本人の上の下クラスの生活でしょ?

そういう意味では、世界にはLinus以上に上手くプログラムで成功した奴って何万人もいるんじゃねえの。
975デフォルトの名無しさん:2009/02/10(火) 15:55:58
ライナスなんて未だに下働きの土方階級じゃん。
976デフォルトの名無しさん:2009/02/10(火) 15:59:11
>>974
お前にとっては 「金 = 成功」 か?
ちっちゃな人間だなお前は。
可哀そうになってきた。
977デフォルトの名無しさん:2009/02/10(火) 16:10:31
>>976
メアドも見てやれよ

>>975
だがLinusの作ったOSは世界中いたるところで使われており、その名前は歴史に残った
お前は2chで書き込んでるのが関の山
978デフォルトの名無しさん:2009/02/10(火) 17:27:40
Altair-BASIC は Gates 一人で作ったわけじゃないし
Linux は Linus 一人で作ったわけじゃないし
Apple ][ は Jobs 一人で作ったわけじゃないし
そもそも、殆どは彼らよりも周りの人間が作ったと言えるけども
そんな事とは関係なく成功者なので

   奴らはマとして成功したわけじゃない

うん。やっぱ成功の秘訣は大言壮語かも試練。
979デフォルトの名無しさん:2009/02/10(火) 17:36:45
>>978
ネタだと逝ってくれ。ツッコミどころありすぎ。
980デフォルトの名無しさん:2009/02/10(火) 18:19:51
][
981デフォルトの名無しさん:2009/02/10(火) 18:31:21
982デフォルトの名無しさん:2009/02/10(火) 18:55:26
Linusは俺が作った by 親父
983デフォルトの名無しさん:2009/02/10(火) 21:55:53
他はともかくAppleはJobs一人で作ったようなもんだろ
984デフォルトの名無しさん:2009/02/10(火) 22:18:34
>>983
一人で作ったような顔をしているだけだろ。
985デフォルトの名無しさん:2009/02/10(火) 22:20:43
>>983 Appleはウォズがいなきゃ存在していない
986デフォルトの名無しさん:2009/02/10(火) 22:59:49
ウォズ?だれそれ
987デフォルトの名無しさん:2009/02/10(火) 23:00:58
ウォーズマン
988デフォルトの名無しさん:2009/02/10(火) 23:29:34
違法コピーのソフトとか電話のただがけ装置作って売ってた人
林檎の教祖の片割れ
989デフォルトの名無しさん:2009/02/10(火) 23:41:50
>>988
その利益を騙して独占したのがジョブズ
990デフォルトの名無しさん:2009/02/10(火) 23:50:28
>>988
本気で言ってる?

もしかして、電話クラックしまくってた誰かと間違えてない?

ウォズって、 測定器しか作ってなかった頃の HP でバイトしてて,
Apple のプロトタイプ作った時に, HP から
「うちはそんなもん作らんから勝手にしろた」
って言われて、スティーブにそそのかされて Apple 立ち上げて
Apple I とか Apple II を設計した人なんだけど…
991デフォルトの名無しさん:2009/02/10(火) 23:53:03
992デフォルトの名無しさん:2009/02/11(水) 00:08:44
>>911
マシン語とニーモニックの区別もつかんのかお前は。
993デフォルトの名無しさん:2009/02/11(水) 00:52:19
で、お前はマシン語に構文が無いと思ってるの?
994デフォルトの名無しさん:2009/02/11(水) 08:11:15
まぁjobsとlinusとgatesの中では
jobsが一番モノ作ってないのは間違いない
元からエンジニアではないし
995デフォルトの名無しさん:2009/02/11(水) 09:50:21
次スレ行こうぜ
996デフォルトの名無しさん:2009/02/11(水) 13:19:02
C++ が糞なのは分かるけど、その代替が C ってのもなんだかな。
997デフォルトの名無しさん:2009/02/11(水) 13:37:36
関係ないけど、cygwinにgit入ってんだな。
使ってみるか。
998デフォルトの名無しさん:2009/02/11(水) 15:08:51
こんな感じかね:

  jobs:技術6、評価眼9、魅力9、経営力9
    (wozオプションで技術9にアップ)
 linus:技術8、評価眼7、魅力6、経営力NA
    (OSSオプションで技術と評価能力9にアップ)
 gates:技術7、評価眼9、魅力7、経営力9
    (allenオプションで能力同じでx2に分身可能に)

ちなみに一般人の限界は5くらいで。
999デフォルトの名無しさん:2009/02/11(水) 15:27:45
ゲイツやジョブズと比べるとリーナスは技術50くらいだろ
1000デフォルトの名無しさん:2009/02/11(水) 15:35:07
ウンコ言うお前がウンコ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。