【肥大化】C++ を見捨てたヤシ【複雑化】at TECH
【肥大化】C++ を見捨てたヤシ【複雑化】 - 暇つぶし2ch219:デフォルトの名無しさん
08/03/11 15:04:09
>>217
いや、
現実世界の投影 ∈ ドメイン(問題領域)の投影
なの。

「現実世界の投影」の方が小さい。

220:デフォルトの名無しさん
08/03/11 15:05:07
>ドメイン(問題領域)の投影

ってのは、現実にあるもの無いもの含んで超巨大。
これこそ物理学者にふさわしい。

221:デフォルトの名無しさん
08/03/11 15:08:35
>>219
プロトタイプとインスタンスの区別も付かない奴に何を言っても無駄

>>220
馬鹿は黙ってろ


222:デフォルトの名無しさん
08/03/11 15:15:05
>>219
だからそう言ってんじゃんw
どう読んでんだよw
213はイコールじゃないって言いたいんだろ

223:デフォルトの名無しさん
08/03/11 15:17:42
>>222
あ、自分の読み間違い?

良く分からないけど、ま、次の話題にすすみますか。

224:213
08/03/11 15:26:51
現実世界の投影はドメインの投影に含まれると思っています。
物理学者なら現実世界(シミュレーション的な意味で)をドメインとすることもあるかもね、
というつもりで書きました。
「アレ」では端折り過ぎでした。すみません。

まぁ、次の話題へどうぞ。

225:デフォルトの名無しさん
08/03/11 15:28:41
では、OOとしてドメインの投影するには、どんな言語が良いのだ?

226:デフォルトの名無しさん
08/03/11 15:46:33
C++でイナフ

227:デフォルトの名無しさん
08/03/11 18:43:05
>>209あたりからのレスの進み方を見て、oopが分からない人が多い理由が分かった

228:デフォルトの名無しさん
08/03/11 22:44:48
別に分かっていなくても、奇抜なプログラムを書かず、
そのとき使っている環境で普通とされるコードを書ければそれでいい。

229:デフォルトの名無しさん
08/03/12 08:36:17
STL、boostが既に奇抜なプログラムな現実について。

230:デフォルトの名無しさん
08/03/12 08:51:12
C++ではSTLくらい普通の内です。

231:デフォルトの名無しさん
08/03/12 13:16:03
現状のSTLは欠陥品って報告が数多くでてるじゃん

232:デフォルトの名無しさん
08/03/12 13:43:10
ふーん、その欠陥品を模造したものがSTLドトネト→STL.CLIでつか。

233:デフォルトの名無しさん
08/03/12 15:21:31
見捨てた奴スレのレベルの低さから、何かが解るような気がする・・・

234:デフォルトの名無しさん
08/03/12 16:10:56
>>231
だからと言って標準ライブラリに代わりがあるわけではないし、
C++を使わない決定的な理由にならない。

235:デフォルトの名無しさん
08/03/12 19:43:05
URLリンク(www.nicovideo.jp)

C++のエラーは黒魔術

236:デフォルトの名無しさん
08/03/12 19:58:38
キャスト演算子のオーバーロードをしたいと言うとき、
C++の場合はポインタが足枷になる
大抵は派生クラスにして終わりなんだが、newできないクラスのラッパを作る時に不便だ
勿論getterも書くが…個人的にはgetterはあまり増やしたくないな

237:デフォルトの名無しさん
08/03/12 21:48:56
10年間変わっていない。
しかもあと10年は変わりそうにない言語を
肥大化というのもおかしくないか。

238:デフォルトの名無しさん
08/03/12 23:12:57
>>231
まだVC6使ってんのか?

239:デフォルトの名無しさん
08/03/13 00:44:51
かれこれ20年近くC++を使ってきたが・・・
まぁ、いろいろな意味と理由で負の遺産となりつつある。
場合によってはCOBOLより凶悪な事態を招きかねない、早いうちに廃棄処分方針をとった方が良いだろうとは思う、さすがに。
固執する人もいるが、そういった人には一度離れて別の言語を見て回ってみろと言いたい、
開発環境・コンパイラといった物から、言語使用その他あらゆる点で時代遅れになっているので……
唯一進んでいるのはboostとその周辺だろうが、これらがメインになるのは恐らく難しいだろう。

240:デフォルトの名無しさん
08/03/13 01:02:01
そもそも元になってるCに言語としての一貫性と言うか、仕様の一貫性が無いのが気に入らないんだ。
変数宣言は「型、名前」っていう順番で統一するべきだった。
ポインタを複数宣言する時は
char *a, *b, *c
ではなく
char* a, b, c
のほうが自然だし、そもそも char* を typedef していれば
pchar a, b, c
と書けるという事を考えると。

関数ポインタにしても
void (*hoge)(char*, char*)
ではなく、単に
(void (char*, char*)) *hoge
としてくれた方が素直だったのでは。

241:デフォルトの名無しさん
08/03/13 01:13:00
それもそうだが、まずtypedefの構文をもっとまともにすべきだったね。

242:デフォルトの名無しさん
08/03/13 01:15:23
問題はC++の次が何か?ってことで、Cの上位互換なら
Objective-Cという選択肢も一応あるんですがねえ…。

243:デフォルトの名無しさん
08/03/13 01:16:00
C言語から引き継がれた機能のうち最大の問題はプリプロセッサだと思うけどね。

>>241
typedef については、これ以上どうしろと・・・

244:デフォルトの名無しさん
08/03/13 01:22:27
関数ポインタのことじゃない?
typedef void(FUNCP*)(int);
これは最初戸惑った。
typedef void(*)(int) FUNCP;
せめてこうなるべきなんじゃないか?と。

245:デフォルトの名無しさん
08/03/13 01:25:07
>>244
それは、宣言の書き方であって typedef 関係ない

246:デフォルトの名無しさん
08/03/13 01:36:55
typedefが記憶クラス指定子ってところがおかしいだろ。

247:デフォルトの名無しさん
08/03/13 01:42:10
どこがよwwww
それでも問題ないし、そもそも記憶クラスじゃないし。

248:デフォルトの名無しさん
08/03/13 02:01:56
>>247
そう、記憶クラスじゃないのに記憶クラス指定子にされているのがなんか気になる。
普段は意識しないし、実用上困ったこともないけどさ。

249:デフォルトの名無しさん
08/03/13 10:56:42
>>240
そもそも char* 等は型ではない。
関数プロトタイプに char* と書くようになってから一貫性がなくなってきてるけどね。

>>247
typedef は Storage-Class Specifier ではない。



250:デフォルトの名無しさん
08/03/13 18:50:53
>>240
でもそれって配列と文法をあわせてるからでしょ。
むしろ他の言語で配列の初期化周りが統一感ない文法が多くて気持ち悪いが。

251:デフォルトの名無しさん
08/03/13 22:05:20
>>243
プリミティブ型からポインタ型や配列型を作れる言語では、
Cの構文以外で一貫性のある型表記を決めるとすると、
関数型言語みたいに「型から型を作る」という意識に立って
typedef &char charptr;
static (const int)*5 intarray;
(int, int) -> void func = { ... };
&((int, int) -> void) funcp;
のように表現せざるを得ない。
で、Cにはタプルもカリー化もないのだから、
わざわざ変数の使い方から乖離した型表記を作る必要はない。

252:デフォルトの名無しさん
08/03/14 10:03:01
>>251
関数型の世界しか頭になさそうなアホちんですね
組み込み等では大変役に立ったモンですよ

253:デフォルトの名無しさん
08/03/14 10:14:55
>>250
kwsk
>>251
レス番間違えてない?
>>252
よく読んでない悪寒


254:デフォルトの名無しさん
08/03/14 10:28:57
熟読した上で、まるで理解できず見当違いの煽りに走った、が正解。

255:デフォルトの名無しさん
08/03/14 12:10:49
>>253
いや、確かに前と後ろにつける違いがあるけど、どちらも変数につけるじゃん。宣言する時も使用するときも。
ポインタの文法は型にくっつけるべきだというなら、配列の宣言も[]は型にくっつけるべきだぜ。

256:デフォルトの名無しさん
08/03/14 16:58:18
入れ子状の宣言文上で複数の変数を宣言するから分りにくくなるだけで
とどのつまり、変数は一つづつ宣言させればいいのさ
それはプログラマがそうすればいいだけの話で、一行に一個づつ変数を宣言しろと。
つか、型宣言はC言語の問題の中では一貫性があり重大な欠陥の少ない部類だろ
なんでこんな所にイチャモンつけてんだか
関数ポインタや、配列返し const volatile register の修飾先が分りにくくて初心者がパニックを起こすのはちと考え物だとは思うが。

257:デフォルトの名無しさん
08/03/14 18:04:45
// C, C++
int *x,y; // xはintへのポインタ, yはint型
int x[N],y; // xはintの配列, yはint型

// C++ typedef
typedef int* pint;
pint x,y; // xとyはintへのポインタ

// java
int[] x,y; // xとyは int[]型

// C#
int* x,y; // xとyは intへのポインタ
int[] x,y; // xとyは int[]型

// D
int* x,y; // xとyは intへのポインタ
int[] x,y; // xとyは intの配列
int[3]*[5] x; // xは int の3要素配列 へのポインタ の5要素配列


いまさらC,C++の宣言の仕様が変わることは有り得ないけど、
新しい言語がCの宣言を否定しているので、
イチャモン?をつける人が出ても、まぁ致し方ないとは思う。

どうせ標準化委員会のメンバーでもないんだし、
気楽に論争(雑談)して良いと思うよ。

258:デフォルトの名無しさん
08/03/14 18:44:16
Cのparserを書こうとすると、Cの宣言の構文が嫌になる。
型名と変数名を区別するのに苦労させられるのがたまらん。

259:デフォルトの名無しさん
08/03/14 21:35:00
変数の宣言部分なんて、C++の話じゃなくて、Cの話だしな


260:デフォルトの名無しさん
08/03/15 04:12:13
>>258
スキャナで適当に区別してしまえよ、せっかく1 passで解析できるように出来ている構文なんだからさ。
それより、古き良き時代で大変役に立った機能が、今、逆に大きな弊害になっている点に突っ込めよ。
インテリセンス・デザイナ・リファクタリングツール・テストツール
リンクを高速に処理可能な抽象度の高い中間ファイル
モダンな機能が組み込み困難になっている現状こそが問題だろ。

261:デフォルトの名無しさん
08/03/16 01:54:31
[迷信] 識別子に使える文字は英数字と下線のみ
URLリンク(www.kijineko.co.jp)

262:デフォルトの名無しさん
08/03/16 04:22:46
>>261
ヨーロッパのマが書いたコードを見れば結構出現頻度高いんだよ、それ
日本やアメリカではお目にかからないけど

263:デフォルトの名無しさん
08/03/16 08:13:45
まぁ、javaやC#とかでも日本語識別子使えるけど、
文字列以外でASCIIでない文字を使うプログラマはカス

日本語プログラミング言語は別だけど

264:デフォルトの名無しさん
08/03/16 15:05:19
もうウニコードベースにすりゃいいのに

265:デフォルトの名無しさん
08/03/16 17:22:02
>>263
日本語ラベルは便利だぞ、C/C++だとラベルはラベル、実行コードは実行コードと分かれているが
リフレクションを持つJavaやC#では、構造体のラベル名を読み取って、そのまま活用できるから、
例えば表のタイトル文字列と、構造体のメンバの名前で表示するとか、XMLの内容をラベル名で出力するとか。
一箇所修正するだけで、全部修正完了するのは便利だ。

266:デフォルトの名無しさん
08/03/16 20:41:58
まさに、そういう考えの人が多いからこそ嫌いなんだけどな
間違ってるとまでは言わないが

ただ、システムの識別子はリファクタリング以外では変えるべきじゃないし
表示名のような業務要件で変わる外部のものと、内部のものを密結合にされると
逆に面倒なことになることもある

267:デフォルトの名無しさん
08/03/17 05:18:58
リファクタリグツールから名前を変更すれば、関わる "識別子=表示名" を根こそぎ全部置換してくれるから、変更漏れがなくていいと思うんだが。
それに、他人に説明するときに対応関係を説明する手間も省けるし。

268:デフォルトの名無しさん
08/04/23 11:39:07
>>179
粘菌の本質をベースクラスとして定義し
そこから派生クラスで環境依存部分を定義する

後は、派生クラス側で
operator=()をベースクラスのコピーと派生クラスの初期化に定義し直せば、動的に粘菌の性質を変更できるんじゃないのか?


269:デフォルトの名無しさん
08/04/23 11:48:50
俺はC++を見捨てたというより使いこなせるようになるのを諦めた。

270:デフォルトの名無しさん
08/04/24 00:12:27
自分を見限ったという事ですか。

271:デフォルトの名無しさん
08/04/24 00:37:32
そうでーす

272:デフォルトの名無しさん
08/04/24 12:26:49
>>268
いや、そーじゃなくて、プログラミング言語以前に、粘菌とはこれだという定義ができないって話らしいお。

273:デフォルトの名無しさん
08/04/24 16:04:17
>>272
定義できないなら、それが粘菌であるかどうかすらわかんないじゃん

例えば、
「晴れたら、小さな芋虫みたいになって、四方八方に散らばり」
「雨が降ったら、ぬちゃぬちゃで繊維質な物体になる」
って性質を持って居るように見えて
本当は、
「晴れたら、小さな芋虫に捕食され、雨が降ったら、その芋虫を養分に育つ」
のが本当の姿である可能性もあるじゃん

その場合、クラスだの、プロトタイプだの関係なく、オブジェクトの設計そのものに失敗しているってことじゃん


274:デフォルトの名無しさん
08/04/24 16:20:48
名前考えるのめんどくさいよね。
日本語でおkになってほしい。

275:デフォルトの名無しさん
08/04/24 16:27:56
>オブジェクトの設計そのものに失敗しているってことじゃん

ま、つまり、そういうことだ。
現実は、オブジェクト設計を失敗してるってこと。

【謎飼育】正体不明の謎生物を7年間に渡って飼育している動物園
URLリンク(karapaia.livedoor.biz)

遺伝子組み換えで、生物どころか単なるパーツが作られちゃうかも。

276:275
08/04/24 16:29:45
「現実は」ってのは、”現実世界は”ってことね。

クラス派生で生物が進化してきたわけじゃない。
グラデーション、みたいな。

277:275
08/04/24 16:32:24
もっというと、生物の進化は、単純化・複雑化の2方向があるが、現実は「複雑化」の一方。

今、要素を洗い出しても未来には違う要素が出てくる。
スタティックなクラスじゃ足りないってこと。

278:デフォルトの名無しさん
08/04/24 16:34:28
めたふぁとしてのオブジェクトはもういいよ。
それ最初に本に登場したの1992だよ。
名前は日本語でいいが次のトレンドだよ。

279:デフォルトの名無しさん
08/04/24 16:40:24
>例えば、

>って性質を持って居るように見えて
>本当は、

>のが本当の姿である可能性もあるじゃん

 ↑
これに具体例を入れるだけで、クラスベース言語の限界と問題点が明確になるテンプレ。


280:デフォルトの名無しさん
08/04/24 16:53:29
> 例えば、
> 大きい
> って性質を持って居るように見えて
> 本当は、
> 小さい
> のが本当の姿である可能性もあるじゃん

ねーよwww

281:デフォルトの名無しさん
08/04/24 17:02:34
まあ、ヒトクラスとサルクラスを作ったらその分化前の類人猿はどうするよ、と。
類人猿クラスを作ったらそれとヒトの間はどうするよ、と。
ミッシングリンクみたく、中間は無限にあるという問題になる。

282:デフォルトの名無しさん
08/04/24 17:12:17
>>281
それ俺らが生まれる前の時代にさんざん議論されつくした話題じゃん。
結局ある種の制約がないとプログラミングできないんだから、その手の
問題がないほうが問題なんだよ。
制約があるのが正しい状態って結論が出て今があるわけ。

というわけで、いま必要なのは日本語でいいじゃんってことなんだよ。

283:デフォルトの名無しさん
08/04/24 17:13:39
>>279
それは、クラスベース言語の問題点じゃなくて、オブジェクト指向の限界だろw

>>280
ねーよwww

>>281
それは、オブジェクト指向以前に、デジタル回路ととアナログ回路の違いからやり直した方がいいよ、たぶんw


284:デフォルトの名無しさん
08/04/24 17:18:13
>>283
おまい無知なだけじゃん。
スタティックなOOがクラスベースっていうOOのイロハを知らないんだろ。

回線切ってケーブルで(ry

285:デフォルトの名無しさん
08/04/24 17:19:54
>それ俺らが生まれる前の時代にさんざん議論されつくした話題じゃん。

ねーよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


昔あった議論は、OOじゃなくて構造化は是か非か。
その前は、汗じゃなくてCは是か非か。

286:デフォルトの名無しさん
08/04/24 17:25:41
整数型 ねーよ = いいえ。
どうよこれ?
いいだろ?


287:デフォルトの名無しさん
08/04/24 17:26:23
>制約があるのが正しい状態って結論が出て今があるわけ。


ねーよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


プログラミング言語はソフトウェアとともに進化して来てんだよ。
そしてソフトがクラスベース言語で表現できないものも扱い始めたんだよ。


おまいは市んだ法が良い。あどヴぁいすwwwwwwwwwwwwwwwwwwww

288:デフォルトの名無しさん
08/04/24 17:31:46
あれか、人クラスを作ったとき
会社員クラスから学生クラスには出来ず、また学生クラスから会社員クラスにも出来ないから、クラスベースは静的で役に立たないってかw


289:デフォルトの名無しさん
08/04/24 17:38:19
288=誤読乙!

ヴぁかは読解力が無いようでwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

290:デフォルトの名無しさん
08/04/24 17:42:13
>>288
is a関係とhas a関係とかいう奴だな。
そこで、property型を導入するんだよ。
日本語至上主義的には属性ってしたくなるけど、そこは肩書だな。
なんでかっていうと、肩書ってしとけば委譲するとき意味的に
ぴったしっぽいじゃん。
で、よくよく考えると他重軽傷でいいのか?とか思っちゃうんだけど、
そうするとまた最初に戻っちゃうので、肩書を導入すること推奨。

291:デフォルトの名無しさん
08/04/24 17:47:48
芝君の話は難しすぎて判りませんね(棒読


292:デフォルトの名無しさん
08/04/24 17:49:34
会社員や学生に「is-aヒト」問い合わせしたらtrueだろうが、
ヒト・サルに文化する前の類人猿に「is-aヒト」、「is-aサル」を問い合わせたら、true?false?
サルが派生してヒトになったわけじゃない。
類人猿が分化して夫々になったわけだし。

293:デフォルトの名無しさん
08/04/24 17:51:36
C++0xに肩書が導入されたらどうするよ?

294:デフォルトの名無しさん
08/04/24 17:52:57
>>292
いいえになるよ。
だっていいえだろ?

295:デフォルトの名無しさん
08/04/24 17:53:41
誰だよふぁびょってるのは・・・

296:デフォルトの名無しさん
08/04/24 17:55:35
>>292
その認識だと類人猿はヒト、サルの共通の祖先なので、
ヒトでもサルでも無い(false)。
ヒト、サルにis-a類人猿したら両方trueだろ。

297:デフォルトの名無しさん
08/04/24 17:56:47
>>296
いいえになるよ。
折れるいじねんじゃないしw

298:デフォルトの名無しさん
08/04/24 18:00:15
>>297
デジタルモンキー乙w

299:デフォルトの名無しさん
08/04/24 18:02:12
略してでじもん乙。

300:デフォルトの名無しさん
08/04/24 18:07:11
取り敢えず、芝君の仲間になりたくないから、俺はC++で頑張るわ


301:デフォルトの名無しさん
08/04/25 00:14:14
芝君にとってのオブジェクト指向は、なんでも解決するスーパーテクニックの様です

傍迷惑でビッグなクラスとか、誰にも読めないプロトタイプの山が見えるな

302:デフォルトの名無しさん
08/04/25 07:29:05
じゃぁ、クラスの肥大化を防ぐテクニックについて語ろうぜ。
クラスっていうのはえさを与えなくても勝手に大きくなっていくものだからな。
テンプレートも一つの解ではあるな。

303:デフォルトの名無しさん
08/04/25 09:28:47
クラスを肥大化させないテクニックは
「馬鹿にクラス設計をさせない」


304:デフォルトの名無しさん
08/04/25 09:43:35
>芝君

 ↑
これって何?
自演クンって意味?

305:デフォルトの名無しさん
08/04/25 10:08:00
芝君の仕事は、2chのスレに芝を生やすことだぉ


306:デフォルトの名無しさん
08/04/26 10:18:40
           _, ._ 
  んもー! ( ・ω・)    .  .
        ○={=}〇, ; .'´ `. ゙ ; `
        |:::::::::\,.'.;´," :´,´' . ゙ .` .
 .,,.,.,,,.,.,,,.,.,,,.,.,,,.,.,し,,.,.,`(.@)wwwwwwwwwwwww 

307:デフォルトの名無しさん
08/04/26 11:43:10
>>302
テンプレートを使うとクラスの代わりに実行モジュールが肥大化します。

308:デフォルトの名無しさん
08/04/26 11:53:54
>>302
テンプレートを使うとコンパイル速度も飛躍的に悪化します。

309:デフォルトの名無しさん
08/04/26 13:32:46
>>302
テンプレート使っちゃうと、クラスに対するプロトタイプの利点が無くなるよぉw


310:デフォルトの名無しさん
08/04/27 00:04:47
実行モジュールのサイズを縮小し、コンパイル速度も短縮して
ついでに生産性も縮小するわけですね、わかります。

311:デフォルトの名無しさん
08/04/27 00:11:31
>>302
テンプレートを使うと >>310 の仲間になれるかもよ!

312:デフォルトの名無しさん
08/04/27 01:20:43
>>307-309,>>311
std名前空間使用禁止ワロタw

313:デフォルトの名無しさん
08/04/27 01:21:04
>>302
クラスが肥大化するのは、設計が悪い場合もあるけど、
提供する機能が多いっていう場合もあるんだよな。
後者の場合、どんなやり方をとったとしても、大きなクラスかたくさんのクラスを作るかせねばならん。

314:デフォルトの名無しさん
08/04/27 01:52:27
クラスを使っても肥大化、テンプレートを使っても肥大化。言語仕様も益々肥大化。
むしろ C++ ユーザは肥大化を求めているんじゃないかな。実際どうかは別として、
肥大化すればするほど生産性が上がるという教義だから。

315:デフォルトの名無しさん
08/04/27 01:55:43
バグの生産性ですね分かります

316:デフォルトの名無しさん
08/04/27 04:35:53
別に肥大化したところで、使いたいと思わない機能は使わなきゃいんじゃね?
Bjarne氏もD&Eでそう言ってたし。「使わない機能はコストを発生させない」っていう
原則もあることだし。肥大化することで初心者が不幸になることもないと思う。
ただまぁ、何から学べばいいかわかりにくくなるor勉強する(べきだと思われる)ことが
多すぎてしょんぼりくる可能性はあるが。

317:デフォルトの名無しさん
08/04/27 10:42:23
肥大化はC++がというより
C#がという方がより適切と思うが
LINQとか

318:デフォルトの名無しさん
08/04/27 12:54:40
使ってる人間の殆どが肥大化嗜好だから、使いたいと思わない機能は
使わないという当たり前の選択を貫徹するのは不可能に近い。

319:デフォルトの名無しさん
08/04/27 13:34:57
>>318
まあな
使わないと選択する為には
少なくともその機能を知っておかなければ
ならない訳で、もうその時点でラーニングコストは
発生している。初めから無理なことを言っている。

320:デフォルトの名無しさん
08/04/27 13:50:34
プロの道具なので仕方ない。
プロでない人は自分が使いやすい言語を選ぶと良い。

言語の機能の習得ごときでいっぱいいっぱいなら、
組み込み系、DB、マルチメディア処理、ドライバ開発とかの
言語以外ので学習で鼻血出るだろうな。

321:デフォルトの名無しさん
08/04/27 14:25:09
プロキター!

プロならもっと道具を選べよ…
その4つの中で C++ が他の言語より優れているのって
マルチメディア処理だけだな。

322:デフォルトの名無しさん
08/04/27 14:30:01
でもすべての言語をその4つの平均点で比べるとC++はかなり有能だろ

323:デフォルトの名無しさん
08/04/27 14:40:11
>>321
その他の言語ってのそれぞれ教えてくれないか?
C言語以外でw

324:320
08/04/27 15:01:09
>>321
どう読んだのか知らないが、俺の趣旨は
 ・学習用の言語でないので、言語機能を理解力の低い人に合わせる必要は無い。
 ・言語の機能の習得と、専門知識の習得では、後者の方が難しい。
ということなんだが。

その4つは例を挙げたに過ぎないし、
それらにC++が適しているとも言っていない。

特にDBは俺が最近DB周りのチューニングとかしてたので、
たまたま脳裏に出てきただけだ。言語はC++じゃない。

道具を選べ、というのは同意する。
他のメンバーやプラットホームの都合があるので、
好きに選べるわけじゃないけどな。

325:デフォルトの名無しさん
08/04/27 16:07:21
>>323
C++ 使いには C にコンプレックス持ってる人間が多いな。
道具は使いようだぜ。

組み込み(つっても色々あるが…) -> C
DB(まあ Oracle だと思いねえ) -> Java
マルチメディア(画像処理とか) -> C++
ドライバ(Win は知らんけど…) -> C

>>324
分野別の知識は言語の習得とは直行した課題だと思うよ。
専門知識の習得は、言語が難しかろうが簡単であろうが必要となる事なんだから、
言語の習得は簡単な方が良いとも言えるんじゃないかな。

326:デフォルトの名無しさん
08/04/27 16:14:10
ところで、上の方でOO云々語ってる奴らはJavaやらC++の
対象.メッセージ(値,値);
構文しか知らんのだろうな、例えば
[対象 メッセージ:値 メッセージ:値];
やら
Send(対象,メッセージ,値,値);
とか、
メッセージ(対象,値,値);
(メッセージ 対象 値 値)
なんかを知ってればもっと増しな議論が
出来るだろうに。
せめてクラスや継承は必要悪でありOOの本質でないと気付いて貰いたいものだ。

327:デフォルトの名無しさん
08/04/27 16:23:54
知っているに越したことはないが、それはまたC++とは別の世界。
C++のOOでメッセージを持ち出してくるのもどうかと思う。
URLリンク(d.hatena.ne.jp)

328:デフォルトの名無しさん
08/04/27 16:43:41
>>327
確かにそうだがC++で

template<class T>void F(T &対象)
{
 対象.メッセージ();
}

//対象1と対象2は同じメッセージを持つ
//意外何ら関連性は無い
型1 対象1;
型2 対象2;

//Fは対象が何であれ構造を気にせず
//処理を行える。
F(対象1);
F(対象2);

という文を見ると、静的ではあるが
メッセージを意識せざる得ない。
アラン・ケイがRubyを誉める理由も
これを動的且つ素直に実装できる事が
一因しているように思う。

329:デフォルトの名無しさん
08/04/27 16:54:23
>>325
> C, Java, C++, C
完全に予想通りの回答ありがとうw

330:デフォルトの名無しさん
08/04/27 16:57:27
>C++のOOでメッセージを持ち出してくるのもどうかと思う。
もともとC++はオブジェクト指向できるようにはできていないんだよ、だからSTLなんだ。
しかしオブジェクト指向を考えるならメッセージを考えないというのは論外。

自分は 326 じゃないが
>せめてクラスや継承は必要悪でありOOの本質でないと気付いて貰いたいものだ。
これはオブジェクト指向においては核心部分だぞ。

331:デフォルトの名無しさん
08/04/27 17:16:33
C++使ってる奴がCにコンプレックスってのは考えられないな

C95とは基本的に互換だから、気にするのはC++の構文が使えない程度
C99との差異は理解の上では大したことないし
精々STLが使えなくて面倒ってとこだろ

332:デフォルトの名無しさん
08/04/27 17:17:25
>>331
現実には多いよ

333:デフォルトの名無しさん
08/04/27 17:19:16
>>330
そうなのか?
327のとこにはこう書いてあるけど。
> ストラウストラップの「ユーザー定義型の」オブジェクト指向
中略
> なお、この文脈の「オブジェクト指向」において、メッセージングはぜんぜん関係ない無用のもの
> and/or 動的性実現のための(仮想関数より効率の悪い)実装のひとつに過ぎない…
> ということを強く意識する必要があります。

334:デフォルトの名無しさん
08/04/27 17:20:58
>>332
そいつらってどういうコンプレックス持ってるんだ?
「ポインタ分からないのでstd::vectorとか使わないと可変配列も作れません」
とかの馬鹿はC++分かってるとは言わないし

335:デフォルトの名無しさん
08/04/27 17:21:36
そうかなあw
ポインタ本の人(前橋)の意見じゃないけど、メッセージ云々こそ「言い方を変えただけ」
に過ぎず本質と何も関係ないと思うけど。

336:デフォルトの名無しさん
08/04/27 17:23:26
>>331
折角苦労して C++ 覚えたのに C で何の問題も無い事を見せつけられたら
僻む気持ちも出てくる事だろうさ。今までの努力が水の泡だからな。
上には Java 下には C で居場所無いもんね。生産性重視なら LL があるし。

337:デフォルトの名無しさん
08/04/27 17:36:51
>>336
>折角苦労して C++ 覚えたのに
そういう可哀想な連中は先々で躓くから気にしなくていいだろ
おそらくC++開発者としてもあまり役に立たないだろう

というか今日日、JavaやLL系も使えてもらえないと
流石にC++しか出来ませんじゃ困るだろ

338:デフォルトの名無しさん
08/04/27 17:48:28
>>332
>>335
 実装と理論は違うがな。
たまたまC++は実行コストから
関数≒メッセージレシーバの方式を
採っただけで本来メッセージの受信者は
PCの周辺機器やら、ネットワークの
向こう、はたまた操作するユーザーでも
構わないんだから。それらを抽象化して
クラスやプロとタイプと言うアプローチ
も構わないが根底にメッセージ概念が
有る事を意識する事は重要。
(故に単にメソッド&クラス脳の
Java屋はOO世界から馬鹿にされるんだがな)

339:デフォルトの名無しさん
08/04/27 17:57:48
Cを理解していればC++は0からよりは早く使えるようになる。
C++、Java、C#のどれかを理解してたら、
他の2つもすんなり使えるようになる。
JavaScript、Python、PHPなども同様。

宣言型言語に対してはともかく、
他の命令型言語に対してそれらの知識は水の泡にはならないと思う。
水の泡になるくらい応用力無いならPG向いてない。

340:デフォルトの名無しさん
08/04/27 18:01:54
>>338
否定する気は無いけど、とりあえず>>327読んでからレスした方がいい

341:デフォルトの名無しさん
08/04/27 18:05:41
>>327のリンク先のことな

342:デフォルトの名無しさん
08/04/27 18:08:15
>>340
338ではないが、327 の考え方はゆがんでいると思うので、どうかな?
もっとシンプルにオブジェクト指向をとらえないと訳わからんようなるよ。
具体的にどう挙動するかなんて見たら、全部チューリングマシンになっちまう、そんなの意味無い。
歴史を紐解いたら、紆余曲折して進歩した以上、全部オブジェクト指向になりかねない、そんなの意味無い。

343:デフォルトの名無しさん
08/04/27 18:13:55
> 具体的にどう挙動するかなんて見たら、全部チューリングマシンになっちまう
同じように、342の言う「もっとシンプルにオブジェクト指向をとらえる」を当てはめれば、
全部メッセージになってしまう気がする、Cの関数呼出やアセンブリでのジャンプすらも。

どっちも次元や方向性は違えど、極論すぎるという点では同じと感じた。

344:デフォルトの名無しさん
08/04/27 18:15:20
>>343
言葉の定義なんだから、今主流的に言われている物でいいんだよ、変な事は考える必要はないかと。

345:デフォルトの名無しさん
08/04/27 18:18:26
オブジェクト指向はともかく、
メッセージって言葉は主流だと思えないけど。

346:デフォルトの名無しさん
08/04/27 18:22:48
>>341
アレは読んだが、アレを鵜呑みにする限り
C++=OOを理解しないタコ
と言うレッテルは消えないだろうな
(まぁ、実際テンプレートにハマってしまえば
そんなレッテルはられようとどうでも
よくなるが…)
だが、Cで掛かれたドライバですら意識して
設計されてるんだ。言語に捕らわれ
設計思想として意識しないのは勿体無い。

347:デフォルトの名無しさん
08/04/27 18:26:51
C++はオブジェクト指向以外にもいろいろ広範囲に可能なことや思想が入っているから
オブジェクト指向ができないから駄目だという事にはならない訳で・・・
奇妙なオブジェクト指向は問題とは思うが、C++を知らないというのはさびしい話だね。

348:デフォルトの名無しさん
08/04/27 18:28:54
逆に、純粋にOOだけやっていたいというのであれば、
C++を使わないのもある意味正解。誘惑や罠が多すぎる。

349:デフォルトの名無しさん
08/04/27 18:40:20
クラスの肥大化防止はどうしたんだよ。

350:デフォルトの名無しさん
08/04/27 18:42:00
>>343
制御構造なんてのはメッセージを
受け取った相手の振る舞い又は
伝達手段の一部。
メッセージは多態であり抽象的な
もので、制御そのものをメッセージと
捉えるのは違うと思う。


351:デフォルトの名無しさん
08/04/27 18:48:09
>>346
340で書いた通り否定する気は無いけど、
327の先にある「このどれに軸足を置くかの違いでしかない」のところは正しいと思う

シンプルに捉えるのは良いけど、あんまり突き詰めると逆に混乱するぞ
オブジェクト指向という言葉が厳密に意味付けされてないからな

352:デフォルトの名無しさん
08/04/27 18:58:26
お前らスレタイ読めよ。
C++の話なんだからそんなもんどうでもいいだろ。

353:デフォルトの名無しさん
08/04/27 18:58:52
全ては関数
全ては入出力
全てはオブジェクト
全てはメッセージ
全てはリスト

354:デフォルトの名無しさん
08/04/27 19:04:18
>>352
まともなOOが出来ない→C++イラネ
→否意識・設定の仕方の問題だ

↑の流れと見ればスレタイの範囲では?

355:354
08/04/27 19:06:06
設定じゃなく設計だったスマン

356:デフォルトの名無しさん
08/04/27 19:09:56
じゃぁ、まともなOOはできないが素直なOOができるってことにしとけ。

357:デフォルトの名無しさん
08/04/27 19:20:35
てかよくよく考えたら別にOOじゃなくたってC++だったらいいんだ。
C++まんせー!

358:デフォルトの名無しさん
08/04/27 19:24:52
そうやってアイデンティティが一つ一つ消えていくんだな…

359:デフォルトの名無しさん
08/04/27 19:48:44
ところで、昨日ブレークポイントで止めてから丸一日が過ぎようとしているのだが…
おれ何やってたんだろ。

360:デフォルトの名無しさん
08/04/27 19:52:10
折角苦労して C++ 覚えたのに C で何の問題も無い事を見せつけられたら...ってそんなわけあるかぼけぇ!!!
こちとら、趣味でC++覚えたが、Cよりも便利で感動しとるわ!!!

少なくとも、Windows用のフレームワークを自作すれば、「Cで何の問題も無い事なんて有り得ない」って気が付くはずだが


361:デフォルトの名無しさん
08/04/27 19:54:50
オブジェクト指向とか言って、気構えているから難しいんだよ
ライブラリの読み書きの仕方程度に思ってりゃ楽勝さ

362:デフォルトの名無しさん
08/04/27 20:00:28
>>360
とはいえ、Windowsには独自のOOがあってCでも困らないという。

363:デフォルトの名無しさん
08/04/27 20:02:11
C++ いろいろな物が限界に達しているからな
コンパイルは遅いし、リンクも遅いし、言語もこれ以上の拡張はヤバすぎるし、ライブラリの混沌ぶりも尋常でないし、まともな開発補助ツールはないし
実用的オブジェクト指向をこの世に出現させ、これは他の言語で開花した。
以後の最大の成果としては template プログラミング、これも他の言語へ移行中。
一通り終わったら、次の世代に託して静かに消え去ってもらうのが良いと思うよ。

364:デフォルトの名無しさん
08/04/27 20:04:41
>>363
まぁまだ先の話だしな。
おれが先かC++が先かってくらい遠い将来の話だろ。
C++が死滅するのは。
今からそんなこと考えたって無駄だな。

365:デフォルトの名無しさん
08/04/27 20:06:41
>コンパイルは遅いし、リンクも遅いし
この二点だけで終わってるよ、マジしゃれならんレベルにまで落ち込んでる。
業務で使っているなら、他の言語にも触ったことがあるなら、深刻さは分かるはず。

366:デフォルトの名無しさん
08/04/27 20:25:11
少なくとも、templateがADAを除き
完全に他に移ることは無いと思うぞ。
他の言語に
class Container<type>
{
 priverte type member;
 public type pop(){…}
 public void push(type x){…}
}
なんて構造があってもtypeは(void*)
と変わらんからな。呼び出し時
Object obje;
Container<Object> list;
list.push(obje);//○
list.push(3);  //×
のように制約が加えられるだけ。
恐らくこの先もコストがデカすぎて
実行時にクラス内の構造が変わる
コンパイル言語はでてこないだろ。

367:デフォルトの名無しさん
08/04/27 20:25:46
次がないからみんな困ってる

368:デフォルトの名無しさん
08/04/27 20:27:39
>>365
そこで分割コンパイルとプリコンパイルドヘッダを活用するってことだな。

369:デフォルトの名無しさん
08/04/27 20:29:25
>>368
そこまでやっても話にならない現状を一度他の言語をみて思い知っておくといいと思う。

370:デフォルトの名無しさん
08/04/27 20:41:24
>>362
それで困るから、フレームワークを自作するんだけどな
個人で使う分には、MFCやWTLほど大げさじゃなくてもいいし

371:デフォルトの名無しさん
08/04/27 20:44:14
c++の資産って他の言語から使えんの?
.netだとc++/cliでラッパー作って・・・ってするらしいけど
cだと普通に呼び出せたりするのにな

372:デフォルトの名無しさん
08/04/27 20:46:11
>>371
通常はCOMにする、ATL使ったら一発。
VBだろうか、VB.NET だろうか C# だろうが、死滅しかけのその他.NET言語でもイケる。

373:デフォルトの名無しさん
08/04/27 20:46:26
>>371
そりゃ使えるでしょVBからでもC#からでも

374:デフォルトの名無しさん
08/04/27 20:48:53
>>369
上から目線だw
C++使いは盲目的でC++しか使ったことがない教団の人ですか?

375:デフォルトの名無しさん
08/04/27 20:52:38
オープンソースのアプリに C++ のコードが混じってると
コンパイルがスローモーションになるから直ぐ分かるw

376:デフォルトの名無しさん
08/04/27 20:53:30
死滅しかけと言えばJ♯はどうなったんだ?

377:デフォルトの名無しさん
08/04/27 20:56:47
>>375
ビルドしかしないからそう見えるのでは?
修正→ビルド→…って繰り返してれば分割コンパイルや
プリコンパイルドヘッダの効果が出るよ。
確かにもうちょっと早くなってくれればいいんだけどねぇ。


378:デフォルトの名無しさん
08/04/27 20:58:44
>>377
そんなの当然やっての話ですよ。
どれほどの差があると思ってるんですか?

379:デフォルトの名無しさん
08/04/27 20:59:20
>>376
死滅がどうとかいうステージにすら立てないだろうその題材じゃw

380:デフォルトの名無しさん
08/04/27 20:59:21
>>368
Boost.SpiritとかBoost.LambdaとかP-Stade.Ovenとか
分割コンパイルとプリコンパイルドヘッダではどうにもならないんだが。

LambdaだけはC++0xで用済みになってくれるが。

>>366
Dのテンプレートはそんなんじゃなさそうな雰囲気。
Dを取り巻く環境(ツールやライブラリ)でまだまだ移ろうという気にならないけど。

381:デフォルトの名無しさん
08/04/27 21:00:54
つかC++のビルドって、リンクだけでお話しにならないからな

382:デフォルトの名無しさん
08/04/27 21:01:25
オープンソース戦士登場!
自由のために戦いまっす!!!
ソースダウンロード!まけまけいんすとーる!
おっせ~~~!C++だっせ~~~!

こんなのに言い負かされてしまうw

383:デフォルトの名無しさん
08/04/27 21:03:37
>>378
ほ~~。
じゃぁ君はC++のとこだけ遅くなるからすぐわかるってくらい
全面的に修正してからリビルドするのかね。
そりゃぁすごいもんだ。

384:デフォルトの名無しさん
08/04/27 21:05:20
>>383
まぁ、井戸の外出た時にでもカルチャーショク受けてくださいなw

385:デフォルトの名無しさん
08/04/27 21:06:03
>>380
spiritは駄目だな。
あれはやりすぎだ。
変態的だとは思わないけどな。

386:デフォルトの名無しさん
08/04/27 21:08:06
>>384
遅いのは誰でも知ってることなんだよ。
使ってる人間が一番困ってるにきまってるだろうに。

387:デフォルトの名無しさん
08/04/27 21:08:56
>>383
コアな所を修正してたら再ビルドは全体に渡るんじゃないの。

388:デフォルトの名無しさん
08/04/27 21:10:33
>>387
プリコンパイルヘッダを限界まで効かせても、コンパイルが多方面に渡らなくても十分遅いからw

389:デフォルトの名無しさん
08/04/27 21:11:05
>>387
オープンソースのコアなとこを修正してビルド。

390:デフォルトの名無しさん
08/04/27 21:12:48
>>371
D言語の作者は制限無しにリンクするのは無理っていってる
多重継承とか例外周りが難所らしい

391:デフォルトの名無しさん
08/04/27 21:14:09
MFCだけどビルドのみだとチグハグなコトに・・って経験が何回もあると
ちょっとした変更でもリビルドやりたい病にかかる

392:デフォルトの名無しさん
08/04/27 21:16:19
MFCはビルド早いからいいけどな。
テンプレート駆使されると極端に遅くなるよな。

393:デフォルトの名無しさん
08/04/27 21:21:54
C++のビルドで、深刻な点の一つは参照先のobjが増えた時にリンクが加速的に遅くなる点だな。
独立プロジェクトが三個・四個になったら平気で5分となるが、この時間だけで C#やVBなら五回全ビルドできる。
まぁ、小さいプロジェクトを使っているうちは問題ないかもしれんが。
もちろんコンパイルその物の大変深刻ではあるが。

394:デフォルトの名無しさん
08/04/27 21:24:10
C#は恐ろしいほど早いと思ったけどなぁ。
でるひのほうがさらに早いって言われたなぁ。

395:デフォルトの名無しさん
08/04/27 21:25:45
ポーランドの製品はコンパイルが速くて高いオプティマイズが売りだから、そりやそうかと。
それがなかったら買い手がつかない。

396:デフォルトの名無しさん
08/04/27 21:28:22
spiritもだいぶ頑張って使いこなせるようになってきたけど、
結論としては使わないほうがいいな。

397:デフォルトの名無しさん
08/04/27 21:33:08
以前この板でcaperっていうのが出てきて期待してたんだけど、
だいぶ叩かれて作者もちべーしょんうしなったみたいだな。
いくつかバグはあるけど動作に問題はないしもう少し作りこんで
ほしかったけどな。
あれなんでたたかれてたんだろな。

398:デフォルトの名無しさん
08/04/27 21:36:17
コンパイルする言語としてはC++とJavaとC#を使ってるけど、
コード量に対するコンパイル速度に大した差は無い。

そんな差より、俺のPCと先輩のPC(自腹で強化)との
コンパイル時間の差が有り過ぎ。
Core 2 Quad + メモリ3G でクソ早い。
俺のPCで30秒以上掛かるのがマジ5秒くらいで終る。会社PCのスペックじゃない。

399:デフォルトの名無しさん
08/04/27 21:39:00
>>393
毎回フルビルドしてるの?
もし差分でそれならソースやばいんじゃない?

400:デフォルトの名無しさん
08/04/27 21:39:50
>>399
だからリンクだけって一生懸命かいてる、コンパイル0秒としてだ。

401:デフォルトの名無しさん
08/04/27 21:39:55
>>398
C++とJava・C#だとだいぶ開きがあるような。
spiritなんかF5押すたびにお茶が飲める。
かといってJavaでspiritみたいなことできるかっていうと、もっと
面白みのないものになるだろうけど。

402:デフォルトの名無しさん
08/04/27 21:41:28
>>399
一瞬オープンソースの子供が混じってただけで、>>393は普通の人だよ。

403:デフォルトの名無しさん
08/04/27 21:44:23
流石大人は違うなw

404:デフォルトの名無しさん
08/04/27 21:44:37
お前等どんなにボロイPCつかってんねん
もっといいPC買えよ


405:デフォルトの名無しさん
08/04/27 21:45:48
リンクで5分とか掛かり過ぎじゃね?
.dllとか.so無くて単一の実行バイナリ作ってるとかだったら吹くけど

406:デフォルトの名無しさん
08/04/27 21:46:47
>>398
俺もよそのCore 2 Quadでコンパイルしてみたことがあるが、
まるでC#やJavaのコンパイルみたいにC++も早いんだ。
こういう環境ならSpiritも楽しく使える。
こういう環境ならプリプロセッサも要らないと思える。

ちなみにC#だとまるでインタプリタのように一瞬で実行され始める、
コンソールプログラムだからあまり参考にならないかもしれないけど。

407:デフォルトの名無しさん
08/04/27 21:49:31
>>406
そんなに早いのか。
マシン性能って大事なんだな。

408:デフォルトの名無しさん
08/04/27 21:50:37
> こういう環境ならプリプロセッサも要らないと思える。
これどういう意味なんだろ??
釣りなんかな。

409:デフォルトの名無しさん
08/04/27 21:50:44
まあCore2Quadなら50倍速ぐらい平気ででるかならw

410:デフォルトの名無しさん
08/04/27 21:51:00
>>404
もともとC++はしょぼいコンピュータでも使えるように
仕様作っていたはずなんだけどな。

今や高性能PCでないと使えないなんて何たる皮肉。
個人で手が出せるだけまだましか。

411:デフォルトの名無しさん
08/04/27 21:51:46
>>408
ごめんプリコンパイルドヘッダの間違いだ。
察してくれよ。

412:デフォルトの名無しさん
08/04/27 21:52:53
> こういう環境ならプリプロセッサも要らないと思える。
> まあCore2Quadなら50倍速ぐらい平気ででるかならw

オープンソース厨が嫌われる理由がなんとなく垣間見えた。

413:デフォルトの名無しさん
08/04/27 21:54:05
C++はDLL化しづらいのがきついところだな。
俺の趣味ライブラリはライン数が約7万の
全てスタティックライブラリで、フルビルドに8分ぐらいか。
CPUはセロリン1.4GHz


414:デフォルトの名無しさん
08/04/27 21:55:00
ばかやろう
開発機は昔から高性能だっちゅうの


415:デフォルトの名無しさん
08/04/27 21:55:30
>>410
原因のうちの一つは、プリプロセッサ
昔はこれにより大幅な高速化と利便性を得ることができたが、影響するものに全部インクルードすると、数が増えると指数関数的に遅くなってしまう。
その2は、objの形式の問題。
オブジェクト指向的なコードに対応する構造ではないから、ひどい有様になっている。
いずれも、昔は軽量であったものの、実は計算オーダーの問題がヤバかったと。

416:デフォルトの名無しさん
08/04/27 21:55:33
まぁ、全員Quad以上にしろってのは、ちょっと酷だけどw
開発マシンのスペックを上げるのも必要だろう。

ユーザーからの要求が高度化して、プログラムも複雑化・大量化して
それに応えるために言語も高度化していく。
さらに単価は抑えられてるから、生産性も求められる。
だからマシン強化も必要だろう、と俺は思う。

417:デフォルトの名無しさん
08/04/27 21:57:16
趣味ライブラリで7万ってすごいな。
マングリングってなんで統一しないんだろな。
できないのかな。

418:デフォルトの名無しさん
08/04/27 21:58:16
人のVC++ 2005プロジェクトが
いくつか静的LIBに分けて並列ビルドするようにするのを見て、
頭いいと思った。

サーセン

419:デフォルトの名無しさん
08/04/27 21:58:58
>>418
かえって遅くて笑ったでしょ

420:デフォルトの名無しさん
08/04/27 21:58:59
>>414
俺のPCだって買った当時はそこそこ高性能だった、はず……。

421:デフォルトの名無しさん
08/04/27 22:01:51
今じゃ俺のPen4 2.6Gは雑魚マシン扱いです

422:デフォルトの名無しさん
08/04/27 22:02:31
>>415
プリプロセッサで大幅に高速化ってどうやるの?

423:デフォルトの名無しさん
08/04/27 22:03:10
このスレには、アンチMSが一人、紛れ込んでるようですね

424:デフォルトの名無しさん
08/04/27 22:03:23
これからの言語は計算量のオーダが爆裂しないようになってないと厳しいっすよ
どんどん規模でかくなるし。

425:デフォルトの名無しさん
08/04/27 22:05:49
415がobjの問題を挙げているが、
今から新しいobj形式を作れないのかな?
ついでにexport templateへの対応が容易とかあれこれやっちゃって。
まあ焼け石に水だと思うけど。

426:デフォルトの名無しさん
08/04/27 22:05:57
>>423
確かによく読むとおかしなことをそれらしく書き込んでる子がいるけど、
アンチMSと何の関係があるのかさっぱり。

427:デフォルトの名無しさん
08/04/27 22:06:57
プリプロセッサで大幅に高速化ってなんだろ?

428:デフォルトの名無しさん
08/04/27 22:07:54
>>427
GNUがやってる、全ファイルをあらかじめ一本に結合してからコンパイル。
互換性の問題があって難航している。

429:デフォルトの名無しさん
08/04/27 22:08:49
関数マクロを使えば、インライン展開されるから
普通の関数より実行速度が速いってことではないか?
今はインライン関数があるから要らないな。

430:デフォルトの名無しさん
08/04/27 22:10:55
C++からC言語の悪い部分を取り除いた、ネイティブコード吐ける言語がほしいな

431:デフォルトの名無しさん
08/04/27 22:12:43
>>428
CPPとは別のプリプロセッサがあるのか。
それをやると、objごとにコンパイルするとかできなくなるんじゃないの?
ファイル数が減ると極端に速度が上がるのは検索システム作った時に経験したけど、
なんか逆向き行ってるような気がしないでもない。

432:デフォルトの名無しさん
08/04/27 22:13:13
んなことしたってさしてメリットのない非互換C++が増えるだけだろ。

433:デフォルトの名無しさん
08/04/27 22:14:54
>>431
仕組みでポカすると、それだけ深刻って事
アルゴリズム軽視するべからず。

434:デフォルトの名無しさん
08/04/27 22:15:14
>>429
ほー。

435:デフォルトの名無しさん
08/04/27 22:15:29
>>418
へー面白そう
やってみよっと


436:デフォルトの名無しさん
08/04/27 22:19:25
まぁRuby最高って書いとけばいいみたいだな。

437:デフォルトの名無しさん
08/04/27 22:22:26
>>433
つまりジェネリクスはダイナミズムで桶ってことですか?

438:デフォルトの名無しさん
08/04/27 22:30:32
趣味でやるならC++だが、
仕事では、絶対に使いたくないな。

バカが一人居ると、まともなものが完成しなくなる

439:デフォルトの名無しさん
08/04/27 22:36:21
2チャンネルももうだめかもなぁ。
前はたまに賢い人がいたもんだけど、最近は呆れてすぐ帰っちゃうな。
全員で釣竿垂らしてるような状態だな。

440:デフォルトの名無しさん
08/04/27 22:36:41
>バカが一人居ると
敷居が低い言語程、バカによるダメージが小さいってのはあるな。
バカが居た場合のダメージは
  C++ >>> Java > PHP
個人的な経験からだけどね。

でもまともなメンバーならある程度逆になる。
ライトウェイト系も悪くは無いけど、コンパイラの助けが少ないからね。
Javaも大人数でやれるけど、
パフォーマンスの問題が出たときとか結構大変だった。

441:デフォルトの名無しさん
08/04/27 22:38:14
>>439
まじで。プログラム板すごくレベルが低い。見てられない。

442:デフォルトの名無しさん
08/04/27 22:40:04
昔からこの板のレベルは大したことなかったろ。

443:デフォルトの名無しさん
08/04/27 22:42:06
>>442
いや、そんなことなかった。
まえは、なんだかんだいって煽りあいつつもまともな議論をしてたよ。
それなりのバックグラウンドのある人が煽りあってたっていうかさ。
今は何だか知ってる単語並べてるだけみたいな。
なんだかなぁ。

444:デフォルトの名無しさん
08/04/27 22:48:05
>>443
キミがゆうな

445:デフォルトの名無しさん
08/04/27 22:49:29
2003年の頃 (googleキャッシュ)
URLリンク(72.14.235.104)

446:こうですか? わかりません
08/04/27 22:52:33
キモいんだよね。
みみっちい言い合いばかりで。
がみがみ言うのもなんだけど、
ゆとりを持とうよ。あれこれ言われても
うざいなんて思わずに
なかよくやろうよ。


447:デフォルトの名無しさん
08/04/27 22:52:39
2001年の頃 (文字化けする人はソース表示で)
URLリンク(web.archive.org)

448:デフォルトの名無しさん
08/04/27 22:53:44
>>445
149: 人工ガッツ石松をプログラミングするヌレッド (16)
このスレなんか名スレだったんだろうなぁ。
おれの予想ではたった16レスで人工知能完成させたと思うぜ。
今の造るスレは>>50までいかないで放棄されるからなぁ。

449:デフォルトの名無しさん
08/04/27 22:57:38
モリタポ使って見たけど、確かに16レスで完成してたなw

16 :デフォルトの名無しさん :03/08/18 00:00
main()
{
while(1)
printf("OK牧場\n");
}

450:デフォルトの名無しさん
08/04/27 22:59:06
>>446
いやそうじゃなくてさ。
あおりあいは昔からすごかったぜ。
でも中身はしっかりしてたよな。
今って適当に相槌うったりしてるけど、バックグラウンドが透けて見えるじゃんか。
何書いてんだろこいつ・・なんて思いつつ、ほーそれはすごいねとか書きこんでるわけよ。
言ってみればリア中が多いんだろな。
リア中って昔はHSPスレにいて棲み分けできてたんだけどなぁ。

451:デフォルトの名無しさん
08/04/27 23:00:12
>>449
うけたw
ほんとに名スレだったんだなw

452:デフォルトの名無しさん
08/04/27 23:01:11
>>450
このスレタイは、そういう人を呼び寄せるタイトルだと思います。

453:デフォルトの名無しさん
08/04/27 23:05:06
しかし、見れば見るほど洗練されたコードだなぁ。
たった数行にガッツ氏のすべてが詰め込まれてるなぁ。

454:デフォルトの名無しさん
08/04/27 23:09:11
まぁ2chの性質上仕方ないかもな。
あとIDが出ないのがそれを加速させてる。

455:デフォルトの名無しさん
08/04/27 23:17:03
>>454
俺もそう思う。
IDがあった方が良いって言っても
「書き込みが減る」「IDがあっても変えて自演出来る」とか言われるんだよな。

それで減るような書き込みなんて大したレスじゃないだろうし、
ID変えたって
スレリンク(software板:29-43番)n
みたいなことになるから、IDあっても良いと思うんだけどな。



456:デフォルトの名無しさん
08/04/27 23:57:10
R15指定でおk

457:デフォルトの名無しさん
08/04/28 17:53:27
馬鹿っぽい書き込み発見!!!


458:デフォルトの名無しさん
08/04/28 18:50:25
そもそもC#からDirectXを呼ぶ公式な手段は消滅しました。

459:デフォルトの名無しさん
08/04/28 19:25:08
それが肥大化と

460:デフォルトの名無しさん
08/04/28 21:49:37
>>458
だから何?アホ?

461:デフォルトの名無しさん
08/04/28 22:26:37
SlimDX

462:デフォルトの名無しさん
08/04/29 21:03:23
昔と比べて質が下がったとか言ってるけど
一番、質を下げてるのはその発言だってのは、お兄さんと君との「ひ・み・つ」だぞ!!!


463:デフォルトの名無しさん
08/04/29 23:59:32
テンプレートがソースに混ざると
なんか異物っぽいんだよねぇ なかなか慣れないですC++

464:デフォルトの名無しさん
08/04/30 00:03:34
テンプレートで異物感を感じてるようじゃ、C++0xなんか拒否反応だろうな。

465:デフォルトの名無しさん
08/04/30 00:23:15
テンプレートははまる

466:デフォルトの名無しさん
08/04/30 03:18:16
実際テンプレートだけ扱いや制限がかなり異なるからなぁ

467:デフォルトの名無しさん
08/04/30 13:37:16
CよりC++のほうがわずかに速い。
理由は・・・知らん。
Rubyが意外と善戦してて僅かながらPrologより速いのには恐れ入った。
↑褒めといたから荒らすなよ。

URLリンク(shootout.alioth.debian.org)

468:デフォルトの名無しさん
08/04/30 14:10:12
>>467
コンパイル時解決を多用して
オーバーヘッドを極力減らすコーディングになってるんじゃないかね

469:デフォルトの名無しさん
08/04/30 14:11:03
C++を静的なPerlとして使ってる奴も少なからずいるだろう。
そういう場合はCの方が速い。

470:デフォルトの名無しさん
08/04/30 19:49:39
C++を性的な目的で使ってごめんなさい

471:デフォルトの名無しさん
08/04/30 19:54:51
詳細希望

472:デフォルトの名無しさん
08/04/30 19:58:22
(i)

473:デフォルトの名無しさん
08/04/30 20:25:31
->*

474:デフォルトの名無しさん
08/04/30 22:36:40
エロゲ屋くらいか、そういうの。

475:デフォルトの名無しさん
08/04/30 23:19:36
決して万人受けしない拡張がいくらか入ってるのはそりゃそうだけど、
クラスとあんまり関係ない部分も「便利C」程度にはなってんだから、そこらへん愛せばいいじゃない、とも思う

あとString関連とか。
C文字列の扱いなんて「理屈は分かり切ってるけど、まどろっこしい」人が使うにはちょうどいいだろうし。
(Stringから入ったりしたら怖いけど)

476:デフォルトの名無しさん
08/04/30 23:35:53
えーとStringってどこのnamespaceですか。
stdはstringですよ。

477:デフォルトの名無しさん
08/04/30 23:44:36
知ってるけどCStringその他あるから限定しないように書いた

478:デフォルトの名無しさん
08/05/01 00:27:27
は?

479:デフォルトの名無しさん
08/05/01 00:30:11


480:デフォルトの名無しさん
08/05/01 02:28:40
何にせよCの方が楽だけどね

481:デフォルトの名無しさん
08/05/01 03:30:47
デストラクタが無いCはまともに使う気しない

482:デフォルトの名無しさん
08/05/01 03:53:53
デストラクタなんて要らない
必要以上に高い所へ上がろうとするから、
落ちやしないかと心配になるんだよ

483:デフォルトの名無しさん
08/05/01 09:36:30
>>482は、malloc()しても、free()しない要注意人物


484:デフォルトの名無しさん
08/05/01 09:57:26
>>483はコンストラクタ/デストラクタがnew/delete時にしか実行されないと思っているうっかり屋さん。

485:デフォルトの名無しさん
08/05/01 10:06:48
>>484
使ったら、後始末をする
そんな当たり前の事をするのが、コンストラクタとデストラクタ
Cで、malloc()したらfree()するのとなんら変わらない

そして、明示的にnewをしても、明示的にdeleteするとは限らないのがC++


486:デフォルトの名無しさん
08/05/01 10:09:56
>>485
メモリだけじゃないってことを言いたかったんだけどね。
リソースリークはmalloc/freeのペアでは解決できない。

487:デフォルトの名無しさん
08/05/01 10:18:35
コンストラクタ/デストラクタっていろいろ応用が利くじゃん
ぶっちゃけ処理はみんな関数じゃなくて関数オブジェクトに分割すべきだと思えてきた
そして俺はきっとこの後関数型言語へ流れていく…

488:デフォルトの名無しさん
08/05/01 10:19:20
>>486
一行で、簡潔にどの環境でも起こりうる事を書けば
malloc()とfree()で十分伝わると思うが
伝わったから、newとdelete時しかって言ったんだろ?

つーかさ、リークはメモリだけじゃないつって>>483に煽り入れるのが間違ってるだろ
そもそも、リークさせてるのは>>482なんだから


489:デフォルトの名無しさん
08/05/01 10:19:54
双方の主張の意味が分からないのは俺だけですか。
RAIIとか自動変数が分からないってことではなく。

490:デフォルトの名無しさん
08/05/01 11:19:01
少なくてもコンストラクタ/デストラクタ無しなんて
ありえないってことは分かったろ?

C時代もmallocで確保したメモリをまとめて管理できる
ポインタリスト作ってたよ、俺は。

491:デフォルトの名無しさん
08/05/01 11:53:17
>>488
>そもそも、リークさせてるのは>>482なんだから

文字列如きでデストラクタ使わないとリークさせちゃう奴なんかいねーよ
それともあんたはそうなのかい?

492:デフォルトの名無しさん
08/05/01 12:53:09
>>491
すげー自信だな
文字列如きでリークなんかしねーよなんて口が裂けても言えないなぁ
メモリの確保が単純にmalloc()すればいい保証なんて何処にもないし


493:デフォルトの名無しさん
08/05/01 12:59:46
おそらくスタック上にchar string[30];とかしてオーバーランさせまくってんじゃないか



494:デフォルトの名無しさん
08/05/01 13:27:13
文字列如きでリークさせちゃう>>491が居るから
C++でvectorとかstringとか出来たのにな

495:デフォルトの名無しさん
08/05/01 13:55:17
うちにも注意しとけばリークなんて起きないと思ってる爺がいるよ

496:デフォルトの名無しさん
08/05/01 14:22:02
>文字列如きでデストラクタ使わないとリークさせちゃう奴なんかいねーよ

すとりんぐって一応スマートポインタの仲間よね と最近思った

497:デフォルトの名無しさん
08/05/01 14:26:56
資源管理オブジェクトとスマートポインタは違うんじゃないかと。
逆参照を抽象化するものがスマートポインタなのでは?

498:デフォルトの名無しさん
08/05/01 14:29:50
いちいち注意してないとリークするWindowsがおかしいんだろ。
おれはLinuxで一度もリークしたことない。

499:デフォルトの名無しさん
08/05/01 14:31:51
ハァ?
アクセス違反ごときでOSごと落ちる窓95の事言ってるのならわかるけどw

500:デフォルトの名無しさん
08/05/01 14:32:35
むしろWindowsとの互換性のためにデストラクタがあるようなもので
Windowsさえなかったらデストラクタは必要なかっただろうな。

501:デフォルトの名無しさん
08/05/01 14:33:55
え??

502:デフォルトの名無しさん
08/05/01 14:43:40
DigitalMars の D ってどうなんかなー

503:デフォルトの名無しさん
08/05/01 14:45:37
>>498
> おれはLinuxで一度もリークしたことない。
「俺は生まれてこの方嘘を吐いたことがない」に負けない位、信用ある言葉だなw


504:デフォルトの名無しさん
08/05/01 14:47:00
意味わがんねー ネタだとは思うけど

Windowsって確かMFCとかでウィンドウ系オブジェクトはこちらのnewではなく自動の動的生成に任せて
ウィンドウとしての寿命の終了に合わせて勝手に破棄される、とか妙なルールあるよね 嫌いじゃないけど。

505:デフォルトの名無しさん
08/05/01 14:54:35
>>504
わからないならレスしないでください。
Linux使ったことないんだろ?

506:デフォルトの名無しさん
08/05/01 14:59:24
>>503
まぁ、低スキルな自分を「普通」と思いたい人には、その二つが同じような言葉に見えるよね。

507:デフォルトの名無しさん
08/05/01 15:02:35
そりゃ、こんぴゅーたーがあるにも関わらず、自分の頭でかんりするような高スキルな人とは話があうわけがないw


508:デフォルトの名無しさん
08/05/01 15:14:22
malloc()とfree()って
fjかここは

509:デフォルトの名無しさん
08/05/01 15:24:21
>>507
誰でも何かをこんぴゅーたーにかんりしてもらいつつ、自分でも何かをかんりしてて、
違うのはその内容なんだから、自分のあたまで何かをかんりしてる図そのものを取り出しても、
意味のある返しにはならないなぁ。

510:デフォルトの名無しさん
08/05/01 16:33:03
仮に、「俺はデストラクタを書いたことがないからデストラクタが不要だ」と言うならば
「馬鹿は死ね」と言いたい

仮に、「メモリやリソースの管理位、デストラクタを使わなくても出来るだろう」と言うならば
「会社辞めて僧侶になって、鬱で自殺した人たちの供養をしろ!!!」と言いたい


511:デフォルトの名無しさん
08/05/01 16:37:58
【米国】 中国はわが国の「敵対者」になり得る CIA長官が警鐘
スレリンク(news板)

512:デフォルトの名無しさん
08/05/01 16:38:18
↓釣り宣言

513:デフォルトの名無しさん
08/05/01 16:39:59
↓幼稚な煽り

514:デフォルトの名無しさん
08/05/01 16:40:56
浜辺で見知らぬおじさんが僕を釣り上げビックリしてた

515:デフォルトの名無しさん
08/05/01 16:43:48
プロセスが落ちても、プロセスが持ってたメモリやリソースを開放しきらない、
昔のWindowsの話をしてる奴が居る予感。

他の人はプログラム上でのリーク、開放してないメモリのアドレスや、リソースのハンドルをロジック的に見失うことについて話してる。

長時間稼働し続けるサービス、デーモン、組み込み系のプログラムでリークは普通に致命的。

プロセス終了時にOSが開放するとか全然関係無い。

516:デフォルトの名無しさん
08/05/01 16:56:48
1941年12月8日に日本が真珠湾を攻撃し、太平洋戦争が始まると、
ヒトラーはその直後の12月11日の演説で
「我々は戦争に負けるはずがない。
我々には3000年間一度も負けたことのない味方が出来たのだ!」
と日本を賞賛し、アメリカに宣戦を布告した。

517:デフォルトの名無しさん
08/05/01 17:05:10
「ヒロポンでは戦争に勝てない。」まで読んだ。

518:デフォルトの名無しさん
08/05/01 17:09:27
Windowsがへぼいからデストラクタが必要になるだけで、コンピューティングの
本質とデストラクタは無縁。
デストラクタはないほうがいいのだから、Windowsに合わせる必要はない。
結果、Windowsを使ってはいけないという結論が出てる。

519:デフォルトの名無しさん
08/05/01 17:17:31
>>518
釣りはいいよ、もう
君だって、デストラクタは使わないにしても
デストラクタ的な、xxx_dispose()のような関数作って
使ってるんだろ?
一緒だよ、むしろしょぼいよ

520:デフォルトの名無しさん
08/05/01 17:19:20
>>518

>>515

521:デフォルトの名無しさん
08/05/01 17:21:38
>>519
> xxx_dispose()
これでは語順がおかしいだろう。
人に意見するなら最低限の知識を仕入れてこい。
最低限、Ubuntuくらい使いこなせないと話にならない。

522:デフォルトの名無しさん
08/05/01 17:30:39
>>521
昔のCはクラスや名前空間がないから
そういう風に表すのが一般的「だろう」と
まあ想像なんだけどねぇ。

例えば、タイマのサービスなら
timer_initialize()
timer_get()
timer_dispose()
とか。

あんたさぁ本当にCプログラマ?

523:デフォルトの名無しさん
08/05/01 17:34:42
>>522
スレたいよめ。
知ったか無用。

524:デフォルトの名無しさん
08/05/01 17:50:04
C++規格策定時からあるものでwindowsとか関係ねーし

525:デフォルトの名無しさん
08/05/01 18:09:17
atexit はデストラクタ的だ

526:デフォルトの名無しさん
08/05/01 18:46:29
>>518
あんたの脳内では「デストラクタは無いほうが良い」が不動の真理であるようだが
みんな「そんなことないんじゃない?」って思ってるんだから
まずはなぜ「デストラクタは無いほうが良い」のかを説明してくれないか。

527:デフォルトの名無しさん
08/05/01 18:49:26
『僕はデストラクタが無いと文字列操作も出来ないです』
『asprintf() を知らないので、C は怖くて使えません』

↑これに該当しない人はこのスレにはいないみたいだな…

528:デフォルトの名無しさん
08/05/01 18:51:57
むしろGC無いと組む気がしない

529:デフォルトの名無しさん
08/05/01 19:07:28
例外あってデストラクタ無いとコードが膨れ上がっちゃうな。

530:デフォルトの名無しさん
08/05/01 19:10:20
>>518 >>527
釣りはよそでやってくれないか。

531:デフォルトの名無しさん
08/05/01 19:15:59
釣りってことにしないと真っ直ぐ歩けないのかな

532:デフォルトの名無しさん
08/05/01 19:18:55
何故釣り呼ばわりされるか、自覚無いだろうけど、
相当痛いこと言ってるんだよ、お前は。

533:デフォルトの名無しさん
08/05/01 19:28:13
つまりデストラクタが無いと何も出来ないんだな
そこまで染まっちゃうと冷静な比較も無理だろう

534:デフォルトの名無しさん
08/05/01 19:31:18
>>531
釣りってことにしないと、ホントの本気で馬鹿にするしかなくなるからでは?

535:デフォルトの名無しさん
08/05/01 19:38:50
デストラクタ君もデストラクタが無いなんて有り得ないの一点張りでしょ。
もともとまともな会話が始まる余地が無い。

536:デフォルトの名無しさん
08/05/01 19:43:14
釣りとかネタとか言う前に地の議論がお寒い。

537:デフォルトの名無しさん
08/05/01 19:49:48
>>536
全体を等しく腐してドロー狙いですか?w

538:デフォルトの名無しさん
08/05/01 19:54:22
いや、あんたの所まで落ちるつもりは無いよ。

539:デフォルトの名無しさん
08/05/01 19:55:45
盛り下がってまいりました

540:デフォルトの名無しさん
08/05/01 19:57:19
最早 C++ とは関係が無いな

541:デフォルトの名無しさん
08/05/01 19:57:54
釣りではなく本気だとしたら、哀れすぎて手が出せない。


542:デフォルトの名無しさん
08/05/01 19:59:38
>>536
機能についての雑談は良いんじゃね?スレタイ的に。

>>537
しょうがないから真面目に相手するよ。
まずRAIIについて軽くググってくれ。
とりあえずそれが代表的なデストラクタの利点だ。

不要と思う理由を頼むよ。
OSは関係無いからね。

それと、ここのスレタイ見て来たC++ユーザーに、
>>527に該当する奴はまず居ないだろう。
初心者スレとかには、そういうのも居るだろうけどね。

543:デフォルトの名無しさん
08/05/01 20:02:40
>>538
お寒い返し乙。

残念だったね一人負けでw

544:デフォルトの名無しさん
08/05/01 20:03:46
javaやC#も採用したってことは必要なんでしょ。

545:デフォルトの名無しさん
08/05/01 20:10:23
C++ がもう少しまともな言語だったら良かったのにとつくづく思うよ。

546:デフォルトの名無しさん
08/05/01 20:11:17
javaとc#にデストラクタは無いよ。
ファイナライズは事実上別物。
ただし、そこを補完するため、

javaはtry-finally、c#はusingが用意されてる。

547:デフォルトの名無しさん
08/05/01 20:14:23
>>545
具体的に書こうぜ。
ただ「駄目」とだけ書くのは誰でも出来る。

548:デフォルトの名無しさん
08/05/01 20:26:23
>>545
誰かが(いずれかの言語が)やってみなきゃならなかったことを
やる役だっただけさ。

549:デフォルトの名無しさん
08/05/01 21:02:21
>そこを補完するため、

足りなかったんですね。

550:デフォルトの名無しさん
08/05/01 21:02:48
>>546
なんで無用なものに対して「補完」する必要があるの?
無用なら全く無くしちゃってもいいじゃん。

551:デフォルトの名無しさん
08/05/01 21:10:53
>>549
はい、足りなかったんです。
GCでメモリは回収出来ますが、リソースは無理でした。

>>550
え?なんで無用なの?
ファイルとか閉じれないとヤバいでしょ?

552:デフォルトの名無しさん
08/05/01 21:13:23
>>546の途中の改行はミスだから気にしないでね。
文は繋がってるよ。

553:デフォルトの名無しさん
08/05/01 21:29:39
だからWindowsが糞な実装だから必要になってるだけで、まともな実装では
必要ないだろが。
お前ちゃんとLinux使ってから発言しろよ。
Linuxも使えない雑魚が。

554:デフォルトの名無しさん
08/05/01 21:31:01
>>524

MSC7.0/VC1.0発売は1992年で、結構早い時期に登場したC++コンパイラ、
C++がISO認証されたのはもっと後

555:デフォルトの名無しさん
08/05/01 21:36:17
>>553
なぁ、>>515読んでもOSが関係無いってことが分からないか?

それとお前以外がLinux使えないって思い込んでるけど、それも間違い。

556:デフォルトの名無しさん
08/05/01 21:37:22
BSD派だからペンギンは使え(わ)ない。

557:デフォルトの名無しさん
08/05/01 21:42:06
コンストラクタとデストラクタでログ吐くモジュールとか
破棄時に遅延評価を行うプロキシクラスとか
デストラクタなしでどうすんの?

ファイナライザでやれ、つうのは名前変えてるだけで同じだね。

あ、もしかして
デストラクタ(ファイナライザ)の有用性は認めるが
そこに資源破棄の役割を持たせる必要は無い、という主張なのかな?
一考には価するかも。

558:デフォルトの名無しさん
08/05/01 21:42:14
>>553
それと、まさか勘違いはしてないだろうけど、
こっちはデストラクタが無いとプログラム組めないとか
そういう主張はしてないからな。

ガベージコレクタ無くても組めるのと同様。

559:デフォルトの名無しさん
08/05/01 21:43:11
OS関係ないだろ
寧ろ基幹鯖とかで致命的

560:558
08/05/01 21:43:44
555=558

561:デフォルトの名無しさん
08/05/01 21:47:47
mallocやnewで借りたものは
Win9xですら終了時にプロセス空間ごと更地になるわけで…
いつのwindowsの話かと

562:デフォルトの名無しさん
08/05/01 21:50:19
結局デストラクタは無くても良いという事で全員の意見が一致したなw

563:デフォルトの名無しさん
08/05/01 21:51:58
プロセス終了までリソースを解放しない人は誰ですか?

564:デフォルトの名無しさん
08/05/01 21:53:23
しかし何でWindowsとLinuxを比べてるんだろうか

言語の違いで言うなら、GCのある言語ではデストラクタがほぼ空になるから
GCの無いC++を批判する気持ちは分かるんだが…

565:デフォルトの名無しさん
08/05/01 21:54:33
反論出来なくなったら勝利宣言とは・・・。
釣りじゃなかったら、すごい哀れだな・・・。

566:デフォルトの名無しさん
08/05/01 21:57:53
あれあれ、まだデストラクタが無いとプログラム組めない人が居たのかな?

567:デフォルトの名無しさん
08/05/01 21:59:51
しおり
>>480-566

568:デフォルトの名無しさん
08/05/01 22:00:15
オブジェクト指向にデストラクタが本当に必要か考えてみるがいい。
Windows使ってると頭おかしくなるのか?
なんでここまで説明してやらないとわからないんだろう?

569:デフォルトの名無しさん
08/05/01 22:05:20
オマエより頭が良くて偉い人が必要だと判断したからな

570:デフォルトの名無しさん
08/05/01 22:05:45
for文て何のためにあるの?
while文で十分じゃん

571:デフォルトの名無しさん
08/05/01 22:07:11
いや、末尾再帰の最適化があればそれで十分だ

572:デフォルトの名無しさん
08/05/01 22:08:03
何故OSが関係無いことを理解出来ないのかが分からない・・・。

シックスセンスじゃないけど、
見たいレスしか見えないんだろうか。

573:デフォルトの名無しさん
08/05/01 22:09:38
デストラクタといえばDのscope(…)文が羨ましい

574:デフォルトの名無しさん
08/05/01 22:11:11
>>570
いやいや。Goto文かJump命令で事足りるぞ

575:デフォルトの名無しさん
08/05/01 22:13:28
asmキーワードでイナフ。

576:デフォルトの名無しさん
08/05/01 22:13:33
>>568
何も説明してないし。


577:デフォルトの名無しさん
08/05/01 22:13:34
>>572
だからLinuxなら全然問題なく完璧にできるっつってるだろ。
なんでわかんねんだ。
これだからM$信者は駄目なんだよ。

578:デフォルトの名無しさん
08/05/01 22:14:02
>>504
それMFC固有のことで、Windowsは関係ない。

579:デフォルトの名無しさん
08/05/01 22:18:46
UNIXでもLinuxでもWindowsでも、CやJavaで問題無くソフトウェアは作れるけど、
メモリリークしていい理由にも、C++にデストラクタが不要だという理由にもならない。

580:デフォルトの名無しさん
08/05/01 22:19:52
>>577
mallocしたメモリやopenで得たファイルディスクプリタが
プロセス終了時にOSが解放したり閉じたりしてくれるということを言っているなら、
Linux/Unixプログラマだって、OSに任せないで
自分で呼んだりデストラクタに任せる奴は当たり前のように存在する。

581:デフォルトの名無しさん
08/05/01 22:21:11
デストラクタをメモリ管理にだけ使っていて、
デストラクタを使わないとメモリリークが止まらない
プログラマが居るだけだお!

582:デフォルトの名無しさん
08/05/01 22:21:29
>>577
mallocで10bytr確保したとしよう。どうやってそれを開放するのか教えてくれるかな。

583:デフォルトの名無しさん
08/05/01 22:22:54
>>582
そんなことも知らないのか。
M$信者は達者なの口だけだな。

584:デフォルトの名無しさん
08/05/01 22:27:23
教えて!


585:デフォルトの名無しさん
08/05/01 22:28:39
さつき先生!!

586:デフォルトの名無しさん
08/05/01 22:28:52
多分free()とかOSが解放してくれるとか言うんだろうな

587:デフォルトの名無しさん
08/05/01 22:36:44
デストラクタ無しだと例外処理とかどうするんだ

588:デフォルトの名無しさん
08/05/01 22:37:01
そこは『OOM Killer が根こそぎ回収する』だろ

589:デフォルトの名無しさん
08/05/01 22:38:26
お前らはカーネルのソース読むとこから始めたほうがいい。

590:デフォルトの名無しさん
08/05/01 22:38:58
C に例外処理なんて無いし要らん

591:デフォルトの名無しさん
08/05/01 22:50:01
110レスか…

592:デフォルトの名無しさん
08/05/01 22:52:35
もう終わりか…

593:デフォルトの名無しさん
08/05/01 22:56:10
結構皆頑張って説明したけど、全然話が通じなかったな。
久々に真性というものを見た・・・。

594:デフォルトの名無しさん
08/05/01 22:56:34
まだやってんのかよ…

595:デフォルトの名無しさん
08/05/01 23:17:04
まとめ。

>>482 降臨 「デストラクタなんて要らない」
>>491 「文字列如きでリークさせる奴なんかいない」
>>498 「Windowsがおかしい、Linuxでリークしたことない」
>>500 「むしろWindowsとの互換性のためにデストラクタがある」
>>518 「Windowsがへぼいからデストラクタが必要になるだけ」
    「Windowsを使ってはいけないという結論が出てる。」
>>527 C++ユーザーは皆、デストラクタが無いと文字列操作も出来ない
>>533 「デストラクタが無いと何も出来ないんだな」
>>553 「Windowsが糞な実装だから必要になってるだけ」
    「Linuxも使えない雑魚が。」
>>562 突如、勝利宣言
    「結局デストラクタは無くても良いという事で全員の意見が一致したなw」
>>566 「デストラクタが無いとプログラム組めない人が居たのかな?」
>>568 「オブジェクト指向にデストラクタが本当に必要か考えてみるがいい。」
    「Windows使ってると頭おかしくなるのか?」
    「なんでここまで説明してやらないとわからないんだろう?」
>>577 「だからLinuxなら全然問題なく完璧にできるっつってるだろ。」
    「これだからM$信者は駄目なんだよ。」
>>583 「そんなことも知らないのか。M$信者は達者なの口だけだな。」
>>589 「お前らはカーネルのソース読むとこから始めたほうがいい。」

IDが無いので完全な抽出は不可能でした。

596:デフォルトの名無しさん
08/05/01 23:18:04
>>482氏の主張(想像)
 ・Windowsだとリークする
 ・Linuxだとリークしない
 ・プロセス終了時にOSが解放するから、解放は不要
 ※ 長時間稼動するソフトウェアについては返答無し

597:482
08/05/01 23:29:46
一応言っておくが Linux 云々は俺じゃないぞ。茶々入れはしたが…
中身の無い煽り合いに熱を上げるのも楽しいかもしれんが、程々にね。

598:デフォルトの名無しさん
08/05/01 23:34:01
ということは、Linux云々の人はデストラクタ関係無しに
「OSが解放するから、解放は不要」とだけ主張していたのだろうか。

599:デフォルトの名無しさん
08/05/01 23:34:42
スルーされたレス
>>515
>>524
>>526
>>542
>>559
>>561
>>563
>>564
>>576
>>579
>>580
>>582-584

見当違いな返答が来たレス
>>519-521

600:デフォルトの名無しさん
08/05/01 23:39:15
そのスルー力は見習うべき・・・でもないなw

601:デフォルトの名無しさん
08/05/02 00:42:15
取り敢えず>>482が、オブジェクト指向と、C++を理解してないのは判った
ついでに、RubyかJAVAを判ったつもりでいることも判った


602:デフォルトの名無しさん
08/05/02 00:53:03
彼と一緒に仕事するわけでもないんだしほっとけよ。

603:デフォルトの名無しさん
08/05/02 01:15:00
鯖毎(同じ鯖なら同じID)じゃなくてスレ毎でもいいからID欲しいな・・・。
騙り・自演防止とかじゃなくて、単純に議論or雑談での識別子として。

どのレスが同じ人のか分からないと、相手の考えも読み取り辛い。

604:デフォルトの名無しさん
08/05/02 01:33:52
例外がからんでくると RAII のイディオムなしで
(エラー処理込みの)正しいプログラムを書くのは
現実的にほとんど無理

あとこんな馬鹿のせいでLinuxが悪く思われるのは悲しいなあと思った


605:デフォルトの名無しさん
08/05/02 02:14:34
大丈夫だ
彼が馬鹿だからと言ってUNIX系が悪いなんて誰も思っちゃいない

606:デフォルトの名無しさん
08/05/02 02:54:20
C++の話がなんでOSの話になるんだろうか。


607:デフォルトの名無しさん
08/05/02 03:37:55
まぁ各種リソースに関しては
言語で組んでる側でポカやっても確実に対処してほしいところではあるな。

608:デフォルトの名無しさん
08/05/02 05:15:48
凄腕の釣り氏だったようだな

609:デフォルトの名無しさん
08/05/02 07:13:37
何だこの伸びは?
Windowsもプロセスの終了時にリソースは開放されるよ。
ハンドルリストにあるのがそのプロセスしか使用してなければ、
ハンドルの対象のリソースは開放される。

610:デフォルトの名無しさん
08/05/02 09:40:13
3.1とか想定してるんじゃないの?

611:デフォルトの名無しさん
08/05/02 12:06:38
プロセス終了では、プロセス内で立てた別スレッドは解放されなかったような。
スレッドが握ってるリソースも解放されない。

612:デフォルトの名無しさん
08/05/02 12:10:02
プロセスを終了したら、そのプロセスはなくなるのに、どうやってプロセス内のスレッドが生き延びるっていうんだ

613:デフォルトの名無しさん
08/05/02 12:16:51
>>611
スレッドは即死するからデストラクタは呼ばれない。でもシステムのリソースは開放される

614:デフォルトの名無しさん
08/05/02 12:17:12
もしかして彼は
コンストラクタ・デストラクタは使わず
ぜんぶ子プロセスを作ってOSに資源管理させろという主張だったのでは…

615:デフォルトの名無しさん
08/05/02 12:20:18
>>614
そして、書き込んだファイルの後ろが切れるOSは糞って切れるわけだ。

616:482
08/05/02 13:59:46
>>601
釣りなのかもしれんがw 俺じゃねえっつの。
妄想人格作り上げて悦に入るなよ…

617:デフォルトの名無しさん
08/05/02 14:01:09
もはやスレ全体がネタと化しているな。

618:482
08/05/02 14:06:06
C++ が欠陥の多い言語なのは議論の余地が無いからな。
昔は C++ が唯一無二の最高言語だと主張する奴も多かったが、
そういう輩は既に絶滅して久しいし、C++ の駄目駄目っぷりを
ネタとして楽しめる土壌が出来て来たんだろう。

619:デフォルトの名無しさん
08/05/02 14:13:47
とりあえず>>526に返答してあげたらいいんじゃないかな

620:デフォルトの名無しさん
08/05/02 14:16:16
>昔は C++ が唯一無二の最高言語だと主張する奴も多かったが、

なことない。

最近の携帯OSが出るまでC++不毛の時代だった。

ブビ厨と最近のM$のダメっぷりに呆れたのと、
独自基板対応のためにC++が再度注目された。

621:482
08/05/02 14:24:32
>>619
518 は俺じゃないよ。
無闇矢鱈とレスを欲しがるのもどうかと思うよ。
スルーされると寂しいのかもしれんが、俺は関係無いし。

622:デフォルトの名無しさん
08/05/02 14:36:19
C++の優位性はtemplateだけだからなぁ
他高級言語でtemplate並みのメタプログラミングが出来るなら
C++を使う理由はなくなるな。
ネイティブコード吐ける云々はどうでもいいことだしな。


623:482
08/05/02 14:37:38
つ Common Lisp / Scheme

624:デフォルトの名無しさん
08/05/02 14:38:24
>>622
「俺にとっては」と付け加えといてくれ。

625:デフォルトの名無しさん
08/05/02 14:38:51
>>621
518じゃないのは前のレスで分かってる
>>482宛だと思って答えてくれ

626:482
08/05/02 14:40:43
それじゃ文脈がおかしいだろ。聞きたい事があるならきちんと聞け。

627:デフォルトの名無しさん
08/05/02 14:46:05
>>626
なぜ「デストラクタなんて要らない」のかを説明してくれないか。

628:482
08/05/02 14:55:04
>>627
簡単な話。
Cではデストラクタが無くてもみんなプログラムを組んでるから。

それとも、
『デストラクタが無いCはまともに使う気しない』人が可哀想だね。
『デストラクタが無いとプログラム出来ません』なんて恥ずかしいよ。
つう感じでガソリンを補給して欲しいのか?

629:デフォルトの名無しさん
08/05/02 15:10:03
それは「無くてもなんとかなる」
だけで、「要らない」理由にはならない。
自動車、飛行機、原子力、etc

630:482
08/05/02 15:14:27
何だよ。言葉遊びか?
下らん。

631:デフォルトの名無しさん
08/05/02 15:20:23
ここはニュースグループか

632:デフォルトの名無しさん
08/05/02 15:25:22
>>628

>>529 >>587 >>604の通りでCには要らなくてもC++には必要。
で、>>590と答える?
だとすると「デストラクタは要らない」じゃなくて、
クラス、例外、テンプレートなどのC++の機能が要らないってことでは?

それは単に「俺はC言語で十分」ってことだと思うんだけど。
違う?

633:デフォルトの名無しさん
08/05/02 15:28:19
>>631
反論の余地がなくなると国語辞典持ち出して単語の粗探しするんだよなw

634:デフォルトの名無しさん
08/05/02 15:31:27
ノイマン型コンピュータのプログラムを組むのに
Cを超える高級言語は不要ってこと?
んー以外に支持受けるかもしれんな

635:482
08/05/02 15:32:08
どうでも良い話だが「俺はC言語で十分だからデストラクタは要らない」
という文章は思い付かなかったのか? 元々そういう文脈だし、余程
国語が苦手じゃなきゃ自明だろ。

こんなどうでも良い話でよくこれだけ盛り上がれるな…

636:デフォルトの名無しさん
08/05/02 15:34:20
URLリンク(mentai.2ch.net)

637:デフォルトの名無しさん
08/05/02 15:38:27
>>635
思いつくわけないだろw
何でピンポイントにデストラクタだけなんだよ。
C++要らない、とかなら分かるけど。

638:デフォルトの名無しさん
08/05/02 15:42:43
C言語はコンストラクタが無いから使えねぇ

639:482
08/05/02 15:43:31
>>637
お前 >>481 を読んでないのか?
粘着する前に周りを良く見ろよ

640:デフォルトの名無しさん
08/05/02 15:43:44
cには不要。
c++には必要。
でFA

641:482
08/05/02 15:49:24
>>640
『C++要らない』も追加でw

642:デフォルトの名無しさん
08/05/02 15:59:40
そうだな、そういやそういうスレだった

643:デフォルトの名無しさん
08/05/02 16:03:47
そもそもC++なんぞ窓以外では閑古鳥

644:デフォルトの名無しさん
08/05/02 16:12:48
つまり、正統派はCOBOLと言いたいのだな

645:デフォルトの名無しさん
08/05/02 16:43:22
C++はいらない子

646:デフォルトの名無しさん
08/05/02 18:04:51
でもCよりC++の方が明らかに便利じゃないか?

int func(int arg) {
 if (arg < 0) return -1; // error
 int param = ...;
}

Cだとこんなのがコンパイルできないし。

647:デフォルトの名無しさん
08/05/02 18:08:29
C99で十分

648:デフォルトの名無しさん
08/05/02 19:08:08
てst

649:デフォルトの名無しさん
08/05/02 19:43:48
よくわかんないけど、これわだめなのか

% cat c.c
#include <stdio.h>
#include <stdlib.h>
int func(int arg) { if (arg < 0) return -1; int param = 0; return param; }
int main() { printf("%d¥n", func(-1)); exit(0); }
% cc -ansi -Wall c.c
% ./a.out
-1

650:デフォルトの名無しさん
08/05/02 20:26:46
Javaの方がC++よりひどい欠点がある。
JavaのJava Runtime Environmentのバージョンの問題だ。
Javaで書かれたプログラムはRuntimeバージョンが違うと動作が保障されないだろ。
これだと、Runtimeバージョンが違う二つのソフトは同じマシンで動作する保障がない。
駄目だこりゃ。

651:デフォルトの名無しさん
08/05/02 20:28:43
>>603
それはこういう所の楽しみ方が分かってないからだよ
意見が純粋に意見として存在出来るというのは貴重なんだぜ

誰であるかという属性を意識したいならば、そういう場所へ行けば良い

652:デフォルトの名無しさん
08/05/02 20:36:46
>>651
単に>>616みたいなことにならないように、ってことじゃね?
スレ毎でいいってのも属性を意識する気はないってことかと

653:デフォルトの名無しさん
08/05/02 20:50:27
>>647
少なくとも既存のCでは不足ということでよろしいか?
というか、Cが好まれる理由はポータビリティにあると思うのだけど、
C99にその役目は果たせるのか?
あと、C99でよくてC++でダメな理由は何?

>>649
あれなんでコンパイルできるの?
msvc6,7,8、もBorlandCも全部できなかったよ。

654:デフォルトの名無しさん
08/05/02 20:54:59
>>643
個人PCの約9割がwindowsを使っているわけだが・・・

655:デフォルトの名無しさん
08/05/02 20:55:44
>>650
JREって複数バージョンを同一マシンにインストールできるんじゃないの?

656:デフォルトの名無しさん
08/05/02 20:59:26
vcランタイムやvbランタイムや.netやjava VMやらが、しかも複数インスコされたら
もうそれだけでお腹いっぱい。

657:デフォルトの名無しさん
08/05/02 21:02:29
gccだと>>649のコンパイルできるんだな
-std=c89 -pedantic-errors
これつけるとだめだけど

658:デフォルトの名無しさん
08/05/02 21:12:58
これでいいのか

% cc -ansi -pedantic -Wall c.c
c.c: In function ‘func’:
c.c:3: warning: ISO C90 forbids mixed declarations and code

たしかにC99でじゅうぶんだな

% cc -std=c99 -pedantic -Wall c.c
% ./a.out
-1

659:デフォルトの名無しさん
08/05/02 22:13:54
>>650
Runtimeバージョンが同じでもプラットフォームが違うと動かなかったりする。
WOREをもじってWOTEと冗談ぽく言われたり。

660:デフォルトの名無しさん
08/05/02 23:10:46
>>651
意見=その瞬間の思いつき、ならそれでいいけどね。
ちょっとでも「根拠」というものが関わってくる「まともな」意見交換になると、
ある1レスに意見の全容が入ってることはまず無くて、そいつの発言のラインを辿って
読み込んでいく必要が出てくるけど、そこで誰が誰やらわからないと、ちょいと面倒になる。

661:デフォルトの名無しさん
08/05/02 23:18:06
そういうのを求めるのであれば別の所へ行く方が君の為だろう

662:603
08/05/02 23:50:16
まさに俺自身が誤解されてるような気がするから書いておくけど、
>>603以降で俺のレスは>>627>>640だけだからね。

663:デフォルトの名無しさん
08/05/02 23:52:04
>>661
「そういうの」がどういうのかわからないけど、
「意見が純粋に意見として存在」するためには前後の認識が必要になるという話。

>>651が「意見ではないものを意見と呼んでいる」場合、野暮なツッコミだったけどね。

664:デフォルトの名無しさん
08/05/02 23:59:02
>>662
誰が誰だか気にし過ぎ

665:デフォルトの名無しさん
08/05/03 00:07:59
そうでもないと思うよ。

666:デフォルトの名無しさん
08/05/03 00:13:52
651は属性とか言わず、普通に

単発の適当な内容をわかった風に書き散らすには、IDは邪魔

って言っておくべきだったんだよ

667:デフォルトの名無しさん
08/05/03 00:14:58
わかった風な事言うなよ

668:デフォルトの名無しさん
08/05/03 00:19:21
お楽しみ頂けただろうか。
実はこのスレには俺とお前と読んでるだけの奴の3人しか居ないんだ。

669:デフォルトの名無しさん
08/05/03 00:27:10
ねーよw

670:デフォルトの名無しさん
08/05/03 00:30:14
以下の不等式に付いて論じよ(30点)

C + LL > C++

671:デフォルトの名無しさん
08/05/03 00:45:44
ナタネ油くらいの燃料が投下されました。

672:デフォルトの名無しさん
08/05/03 00:49:42
#include <iostream>

class Hoge {
public:
  Hoge(int n) : n_(n) {}
  Hoge(const Hoge& hoge) : n_(hoge.n_) {}
  bool operator>(const Hoge& rhs) const { return n_ > rhs.n_; }
  Hoge operator+(const Hoge& rhs) const { return Hoge(n_ + rhs.n_); }
  Hoge operator++(int) { Hoge tmp(*this); ++n_; return tmp; }
private:
  int n_;
};

int main(int argc, char* argv[]) {
  Hoge C(10), LL(20);

  bool ret = C + LL > C++;
  std::cout << ret;
  return 0;
}

# 1 (BCC5.6.4)


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