[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/26 06:21 / Filesize : 219 KB / Number-of Response : 994
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【肥大化】C++ を見捨てたヤシ【複雑化】



1 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 09:52:47 ]
文法面での機能拡張しすぎ。
C++の構文解析とか、もうワケワカメ。
マイクロソフト拡張大杉。
gcnew とか使うぐらいなら素直に Java でも C# でもつかえ!!!



211 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:31:47 ]
>馬鹿は黙ってろ

やっぱ脳みそツルツルの体育会系じゃねーか。
おま、マに向いてないお。

212 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:36:40 ]
>>211
プロトタイプとインスタンスの関係も理解できてないのに大きな口を叩くな
理解できてるなら、説明して見ろ
話はそこからだ


213 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:35:57 ]
オブジェクト指向は現実世界の投影じゃないよ。
言うなればドメイン(問題領域)の投影だよ。
物理学者ならアレだけど。


プロトタイプは原型だよね(英単語的な意味で)
クラスは変な表現になるけど、興味の対象だよ。
インスタンスとプロトタイプは似てたりもするけどね。

ところで、ここ何のスレ?

214 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:37:31 ]
ドメイン(問題領域)の投影
の一例として
現実世界の投影だろ?

213=ヴぁか?



215 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:41:16 ]
>>214
だから馬鹿は黙ってろ
話題に混じりたいなら、プロトタイプとインスタンスの関係を説明してから混じれ


216 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:57:07 ]
a)オブジェクト指向は現実世界の投影じゃないよ。
b)ドメイン(問題領域)の投影だよ。
c)物理学者ならアレだけど。

aとbを比べたらbの方が巨大。
bはaを含む。
だから、aの「じゃないよ。」は成り立たない。

さらにcで「ならアレだけど」と例外的に書いているのはさらに変。
物理学者だからこそ現実世界以外の問題領域が必要になるわけで、
物理学者じゃないならaで十分w

217 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 14:58:40 ]
>>214
一例になるから213は物理学者ならって書いてるんじゃね?

218 名前:213 mailto:sage [2008/03/11(火) 15:03:49 ]
>>216
オブジェクト指向=現実世界の投影じゃ〜
って書いた方が良かったかな。

219 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 15:04:09 ]
>>217
いや、
現実世界の投影 ∈ ドメイン(問題領域)の投影
なの。

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



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

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

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

>>220
馬鹿は黙ってろ


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

223 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 15:17:42 ]
>>222
あ、自分の読み間違い?

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

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

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

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

226 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 15:46:33 ]
C++でイナフ

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

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

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



230 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:51:12 ]
C++ではSTLくらい普通の内です。

231 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 13:16:03 ]
現状のSTLは欠陥品って報告が数多くでてるじゃん

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

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

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

235 名前:デフォルトの名無しさん [2008/03/12(水) 19:43:05 ]
www.nicovideo.jp/watch/sm2482689

C++のエラーは黒魔術

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

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

238 名前:デフォルトの名無しさん [2008/03/12(水) 23:12:57 ]
>>231
まだVC6使ってんのか?

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



240 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:13:00 ]
それもそうだが、まずtypedefの構文をもっとまともにすべきだったね。

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

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

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

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

245 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:25:07 ]
>>244
それは、宣言の書き方であって typedef 関係ない

246 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:36:55 ]
typedefが記憶クラス指定子ってところがおかしいだろ。

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

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

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

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





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

251 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:03:01 ]
>>251
関数型の世界しか頭になさそうなアホちんですね
組み込み等では大変役に立ったモンですよ

253 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:14:55 ]
>>250
kwsk
>>251
レス番間違えてない?
>>252
よく読んでない悪寒


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

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

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

257 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:44:16 ]
Cのparserを書こうとすると、Cの宣言の構文が嫌になる。
型名と変数名を区別するのに苦労させられるのがたまらん。

259 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:35:00 ]
変数の宣言部分なんて、C++の話じゃなくて、Cの話だしな




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

261 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 01:54:31 ]
[迷信] 識別子に使える文字は英数字と下線のみ
ttp://www.kijineko.co.jp/tech/superstitions/only-alnums-and-underscore-are-usable-for-identifier.html

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

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

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

264 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:05:19 ]
もうウニコードベースにすりゃいいのに

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

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

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

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

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

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


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



270 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:12:27 ]
自分を見限ったという事ですか。

271 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:37:32 ]
そうでーす

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

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

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

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


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

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

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

【謎飼育】正体不明の謎生物を7年間に渡って飼育している動物園
ttp://karapaia.livedoor.biz/archives/51124187.html

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

276 名前:275 mailto:sage [2008/04/24(木) 16:29:45 ]
「現実は」ってのは、”現実世界は”ってことね。

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

277 名前:275 mailto:sage [2008/04/24(木) 16:32:24 ]
もっというと、生物の進化は、単純化・複雑化の2方向があるが、現実は「複雑化」の一方。

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

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

279 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 16:40:24 ]
>例えば、

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

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

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




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

ねーよwww

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

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

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

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

>>280
ねーよwww

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


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

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

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

ねーよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


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

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


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


ねーよwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


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


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

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


289 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:38:19 ]
288=誤読乙!

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



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

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


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

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

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

295 名前:デフォルトの名無しさん [2008/04/24(木) 17:53:41 ]
誰だよふぁびょってるのは・・・

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

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

298 名前:デフォルトの名無しさん [2008/04/24(木) 18:00:15 ]
>>297
デジタルモンキー乙w

299 名前:デフォルトの名無しさん [2008/04/24(木) 18:02:12 ]
略してでじもん乙。



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


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

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

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

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


304 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:43:35 ]
>芝君

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

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


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

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

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

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




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

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

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

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

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

315 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 01:55:43 ]
バグの生産性ですね分かります

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

317 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 10:42:23 ]
肥大化はC++がというより
C#がという方がより適切と思うが
LINQとか

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

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



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

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

321 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 14:25:09 ]
プロキター!

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

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

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

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

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

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

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

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

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

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

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

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

328 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 16:54:23 ]
>>325
> C, Java, C++, C
完全に予想通りの回答ありがとうw



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

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

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

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

332 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:17:25 ]
>>331
現実には多いよ

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

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

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

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

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

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

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

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

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



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

341 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:05:41 ]
>>327のリンク先のことな

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

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

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

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

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

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

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

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

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



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


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

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

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

353 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:58:52 ]
全ては関数
全ては入出力
全てはオブジェクト
全てはメッセージ
全てはリスト

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

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

355 名前:354 mailto:sage [2008/04/27(日) 19:06:06 ]
設定じゃなく設計だったスマン

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

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

358 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 19:24:52 ]
そうやってアイデンティティが一つ一つ消えていくんだな…

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



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

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


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

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

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

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

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

366 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 20:25:46 ]
次がないからみんな困ってる

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

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



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

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

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

373 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 20:46:26 ]
>>371
そりゃ使えるでしょVBからでもC#からでも

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

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

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

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


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

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



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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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



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

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

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

403 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 21:44:23 ]
流石大人は違うなw

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


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

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

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

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

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

409 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 21:50:44 ]
まあCore2Quadなら50倍速ぐらい平気ででるかならw



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

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

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

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

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

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


414 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 21:55:00 ]
ばかやろう
開発機は昔から高性能だっちゅうの


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

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

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

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

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

サーセン

419 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 21:58:58 ]
>>418
かえって遅くて笑ったでしょ



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

421 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:01:51 ]
今じゃ俺のPen4 2.6Gは雑魚マシン扱いです

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

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

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

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

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

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

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

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



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

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

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

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

434 名前:デフォルトの名無しさん [2008/04/27(日) 22:15:14 ]
>>429
ほー。

435 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:15:29 ]
>>418
へー面白そう
やってみよっと


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

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

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

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

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



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

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

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

442 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:40:04 ]
昔からこの板のレベルは大したことなかったろ。

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

444 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:48:05 ]
>>443
キミがゆうな

445 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:49:29 ]
2003年の頃 (googleキャッシュ)
72.14.235.104/search?q=cache:U2M6EBEOnWwJ:pc2.2ch.net/tech/subback.html

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


447 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:52:39 ]
2001年の頃 (文字化けする人はソース表示で)
web.archive.org/web/20011217220415/http://pc.2ch.net/tech/subback.html

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

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

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



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

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

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

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

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

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

それで減るような書き込みなんて大したレスじゃないだろうし、
ID変えたって
pc11.2ch.net/test/read.cgi/software/1205585085/29-43n
みたいなことになるから、IDあっても良いと思うんだけどな。



456 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 23:57:10 ]
R15指定でおk

457 名前:デフォルトの名無しさん [2008/04/28(月) 17:53:27 ]
馬鹿っぽい書き込み発見!!!


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

459 名前:デフォルトの名無しさん [2008/04/28(月) 19:25:08 ]
それが肥大化と



460 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:49:37 ]
>>458
だから何?アホ?

461 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:26:37 ]
SlimDX

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


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

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

465 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:23:15 ]
テンプレートははまる

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

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

shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all

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

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



470 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:49:39 ]
C++を性的な目的で使ってごめんなさい

471 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:54:51 ]
詳細希望

472 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:58:22 ]
(i)

473 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:25:31 ]
->*

474 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:36:40 ]
エロゲ屋くらいか、そういうの。

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

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

476 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:35:53 ]
えーとStringってどこのnamespaceですか。
stdはstringですよ。

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

478 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:27:27 ]
は?

479 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:30:11 ]




480 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 02:28:40 ]
何にせよCの方が楽だけどね

481 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 03:30:47 ]
デストラクタが無いCはまともに使う気しない

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

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


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

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

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


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

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

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

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


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



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

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

491 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 11:53:17 ]
>>488
>そもそも、リークさせてるのは>>482なんだから

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

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


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



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

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

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

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

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

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

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



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

501 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:33:55 ]
え??

502 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:43:40 ]
DigitalMars の D ってどうなんかなー

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


504 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 14:47:00 ]
意味わがんねー ネタだとは思うけど

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

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

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

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


508 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 15:14:22 ]
malloc()とfree()って
fjかここは

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



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

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


511 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:37:58 ]
【米国】 中国はわが国の「敵対者」になり得る CIA長官が警鐘
namidame.2ch.net/test/read.cgi/news/1209626659/

512 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:38:18 ]
↓釣り宣言

513 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:39:59 ]
↓幼稚な煽り

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

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

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

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

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

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

517 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:05:10 ]
「ヒロポンでは戦争に勝てない。」まで読んだ。

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

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



520 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:19:20 ]
>>518

>>515

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

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

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

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

523 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:34:42 ]
>>522
スレたいよめ。
知ったか無用。

524 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 17:50:04 ]
C++規格策定時からあるものでwindowsとか関係ねーし

525 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:09:17 ]
atexit はデストラクタ的だ

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

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

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

528 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 18:51:57 ]
むしろGC無いと組む気がしない

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



530 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:10:20 ]
>>518 >>527
釣りはよそでやってくれないか。

531 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:15:59 ]
釣りってことにしないと真っ直ぐ歩けないのかな

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

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

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

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

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

537 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:49:48 ]
>>536
全体を等しく腐してドロー狙いですか?w

538 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:54:22 ]
いや、あんたの所まで落ちるつもりは無いよ。

539 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:55:45 ]
盛り下がってまいりました



540 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 19:57:19 ]
最早 C++ とは関係が無いな

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


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

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

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

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

543 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:02:40 ]
>>538
お寒い返し乙。

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

544 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 20:03:46 ]
javaやC#も採用したってことは必要なんでしょ。

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

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

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

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

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

549 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:02:21 ]
>そこを補完するため、

足りなかったんですね。



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

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

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

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

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

554 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:31:01 ]
>>524

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

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

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

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

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

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

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

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

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

559 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:43:11 ]
OS関係ないだろ
寧ろ基幹鯖とかで致命的



560 名前:558 mailto:sage [2008/05/01(木) 21:43:44 ]
555=558

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

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

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

564 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:53:23 ]
しかし何でWindowsとLinuxを比べてるんだろうか

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

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

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

567 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 21:59:51 ]
しおり
>>480-566

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

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



570 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:05:45 ]
for文て何のためにあるの?
while文で十分じゃん

571 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:07:11 ]
いや、末尾再帰の最適化があればそれで十分だ

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

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

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

574 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:11:11 ]
>>570
いやいや。Goto文かJump命令で事足りるぞ

575 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:13:28 ]
asmキーワードでイナフ。

576 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:13:33 ]
>>568
何も説明してないし。


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

578 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:14:02 ]
>>504
それMFC固有のことで、Windowsは関係ない。

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



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

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

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

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

584 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:27:23 ]
教えて!


585 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:28:39 ]
さつき先生!!

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

587 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:36:44 ]
デストラクタ無しだと例外処理とかどうするんだ

588 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:37:01 ]
そこは『OOM Killer が根こそぎ回収する』だろ

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



590 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:38:58 ]
C に例外処理なんて無いし要らん

591 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:50:01 ]
110レスか…

592 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:52:35 ]
もう終わりか…

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

594 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:56:34 ]
まだやってんのかよ…

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

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

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

599 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 23:34:42 ]
スルーされたレス
>>515
>>524
>>526
>>542
>>559
>>561
>>563
>>564
>>576
>>579
>>580
>>582-584

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



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

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


602 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:53:03 ]
彼と一緒に仕事するわけでもないんだしほっとけよ。

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

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

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

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


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

606 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:54:20 ]
C++の話がなんでOSの話になるんだろうか。


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

608 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 05:15:48 ]
凄腕の釣り氏だったようだな

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



610 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:40:13 ]
3.1とか想定してるんじゃないの?

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

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

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

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

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

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

617 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 14:01:09 ]
もはやスレ全体がネタと化しているな。

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

619 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 14:13:47 ]
とりあえず>>526に返答してあげたらいいんじゃないかな



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

なことない。

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

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

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

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


623 名前:482 mailto:sage [2008/05/02(金) 14:37:38 ]
つ Common Lisp / Scheme

624 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 14:38:24 ]
>>622
「俺にとっては」と付け加えといてくれ。

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

626 名前:482 mailto:sage [2008/05/02(金) 14:40:43 ]
それじゃ文脈がおかしいだろ。聞きたい事があるならきちんと聞け。

627 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 14:46:05 ]
>>626
なぜ「デストラクタなんて要らない」のかを説明してくれないか。

628 名前:482 mailto:sage [2008/05/02(金) 14:55:04 ]
>>627
簡単な話。
Cではデストラクタが無くてもみんなプログラムを組んでるから。

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

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



630 名前:482 mailto:sage [2008/05/02(金) 15:14:27 ]
何だよ。言葉遊びか?
下らん。

631 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:20:23 ]
ここはニュースグループか

632 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:25:22 ]
>>628

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

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

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

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

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

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

636 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:34:20 ]
ttp://mentai.2ch.net/prog/kako/981/981051921.html

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

638 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:42:43 ]
C言語はコンストラクタが無いから使えねぇ

639 名前:482 mailto:sage [2008/05/02(金) 15:43:31 ]
>>637
お前 >>481 を読んでないのか?
粘着する前に周りを良く見ろよ



640 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:43:44 ]
cには不要。
c++には必要。
でFA

641 名前:482 mailto:sage [2008/05/02(金) 15:49:24 ]
>>640
『C++要らない』も追加でw

642 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 15:59:40 ]
そうだな、そういやそういうスレだった

643 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 16:03:47 ]
そもそもC++なんぞ窓以外では閑古鳥

644 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 16:12:48 ]
つまり、正統派はCOBOLと言いたいのだな

645 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 16:43:22 ]
C++はいらない子

646 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:04:51 ]
でもCよりC++の方が明らかに便利じゃないか?

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

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

647 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:08:29 ]
C99で十分

648 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:08:08 ]
てst

649 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 20:26:46 ]
Javaの方がC++よりひどい欠点がある。
JavaのJava Runtime Environmentのバージョンの問題だ。
Javaで書かれたプログラムはRuntimeバージョンが違うと動作が保障されないだろ。
これだと、Runtimeバージョンが違う二つのソフトは同じマシンで動作する保障がない。
駄目だこりゃ。

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

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

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

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

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

654 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 20:54:59 ]
>>643
個人PCの約9割がwindowsを使っているわけだが・・・

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

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

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

658 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:13:54 ]
>>650
Runtimeバージョンが同じでもプラットフォームが違うと動かなかったりする。
WOREをもじってWOTEと冗談ぽく言われたり。



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

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

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

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

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

664 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:59:02 ]
>>662
誰が誰だか気にし過ぎ

665 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:07:59 ]
そうでもないと思うよ。

666 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:13:52 ]
651は属性とか言わず、普通に

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

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

667 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:14:58 ]
わかった風な事言うなよ

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

669 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:27:10 ]
ねーよw



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

C + LL > C++

671 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:45:44 ]
ナタネ油くらいの燃料が投下されました。

672 名前:デフォルトの名無しさん mailto:sage [2008/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)

673 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 01:30:55 ]
> C++ が唯一無二の最高言語

俺にとってはそうだ。
既に万人向けの言語ではなくなってしまったが…

674 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:05:56 ]
何が最高なの?


675 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:18:25 ]
template
boost
concept
move semantics

676 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:25:29 ]
自分は >>673 ではないが自分にとってもC++は最高だ
実用に耐えるのに面白い
初心者向きではないだろうが、長い間使い続けても新発見があるカオス言語
プロは毎日コードを書くんだよ
すぐに全貌が見えきってしまう言語なんて飽きちゃってつまらないだろう

Haskellとかは面白いけど実用に耐えないから仕事で使えないし

677 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 02:46:21 ]
C++に関してはgccの方が規格外

678 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:17:50 ]
>>676
×初心者向きではない
○一般人向きではない

×長い間使い続けても新発見があるカオス言語
○誰も全貌を把握していないカオス言語

変態言語のトップランナーである事を分かって使ってればオケ

679 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:38:23 ]
どこまで登っても頂上が見えてこないのがC++



680 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 08:42:43 ]
※頂上が見えて来たら土を盛って継ぎ足します

681 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:16:26 ]
boost使うと、C++っていったいどこまで上れるのかってそりゃあ恐ろしくなるな。

682 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:27:54 ]
下りのエスカレータを上ってるみたいなもんか

683 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:38:24 ]
C++は登れば登るほど汚くなる山

684 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 10:21:44 ]
富士山?

685 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 10:54:14 ]
汚いのがわかってても下山できないのがC++プルグラマ

686 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 10:59:09 ]
山がある限り登り続ける

687 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:05:06 ]
有名な登山家が言ったよな
地球は青かった
って

688 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:00:59 ]
>>678
c++に限らず、他の言語もお前さんが思ってるより奥が深いよ。

しかし言語のすべてを理解して、すべての機能を使ってコードを書く必要は無い。

クラスを作らせず、スマートポインタやvecterなどの
用意されたライブラリを使って書かせれば、Cより初心者向きだ。

まぁそうは言っても、
俺もwindowsアプリならC#、サーバーサイドならjava、
比較的簡易なウェブアプリならPHPを薦めたりするんだけどな。

他人にC++を薦めるのはActiveXとかの場合かな。

689 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:24:26 ]
>>685
C++は馬鹿が使ったり、馬鹿と一緒に使ったりすると悲惨だけど、
自分が一人で高みに行って使う分には、実に強力だからなぁ。
「ある程度以上へ登れた」人間には、下山する理由が無いんだよね。



690 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:04:18 ]
意味のある難解さは歓迎だ。


691 名前:デフォルトの名無しさん [2008/05/03(土) 13:30:20 ]
members.jcom.home.ne.jp/j-citizenship/siryousyuu7.htm
日時:2001年12月14日18時30分〜 場所:京都YWCA
在日外国籍市民の参政権を考える連続講座 第3回
演題:在日韓国・朝鮮人と国籍 講師:李敬宰さん

ただ、在日が日本国籍をとるということになると、天皇制の問題をどうするのかという人がいますが、
外国人がたくさん日本国籍を取ったほうが、早く天皇制は潰れると思います。
というのは、この先もどんどん外国系市民が増えます。 ある統計では、
一〇〇年後には五人の内三人が外国系になるといいます。 そうなれば、
日本で大和民族がマイノリティーになるのです。 だから、私はあと一〇〇年生きて、
なんとしても日本人を差別して死にたいです。これが夢です(笑)。そういう社会が来たら、
その時に天皇なんていうのは小数民族の酋長さんみたいなものになります。

こうした素晴らしい戦術があるのに、それを、今の左派のように、日本国籍を取ったらダメだということをやっていたら、
いつまでたっても天皇制は温存されたままではないですか。

692 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:45:33 ]
難解さって言っても
C++の難解って誰かの言ったことを丸暗記しろとかそういう類でしょ

693 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:46:31 ]
いや大量のバッドノウハウ

694 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:00:27 ]
>>688
深い奥地まで行っちゃったつもりの奴が一番たちが悪いというか…
底が浅いから辿り着いた事に気付いていない奴が一番痛いというか…
一歩上がっただけで高みに登ったつもりの奴が一番目障りというか…

自覚症状が無いのが哀れだな。
言語の仕様をすべて理解する必要がないって、どんだけ酸っぱい葡萄だよw

695 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:01:31 ]
そうは言うが常人には全て理解するのはまず不可能だと思うぞ

696 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:07:36 ]
誰も全てを理解してないからあんな汚くなったんでしょ
普通の言語じゃ考えられないよね

697 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:08:12 ]
>>692
使わないならそうだね。
使うなら、機能同士が引き起こす「組み合わせ爆発」にも挑まなきゃいけない。
これは丸暗記とはまるで系統の違う難しさだよ。

698 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:12:06 ]
>>689
そのまま山に籠りきって街に出てこなくても誰も困らんけどね

699 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:19:29 ]
>>694
上の文は俺に対してか?
俺は奥地とやらに行ったつもりも、高みに居るつもりも無いぞ。
例えば、boostは基本的にブラックボックスとして使う、と割り切っているし。

あと、俺が言った「奥が深い」は、
複雑性についてでは無いからな。
必要に応じて、より特化出来ることを指している。
javaで例えを挙げると、ソフトリファレンスを使ってキャッシュするとか、
スレッドローカルでやや初期化コストがあるスレッドセーフで無いオブジェクトを使い回すとかな。

俺は出来るだけ言語仕様を理解しようと努めているけど、
他のメンバーにまで強要は出来ない。
それでも開発・メンテで、それによるさしたる問題は起きてない。



700 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:26:21 ]
>>692
馬鹿丸出しの発言ですね。
自分のことでしょう。> 丸暗記のみ

701 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:27:05 ]
いやいや、こういう事がさらっと言えちゃう奴は何か勘違いしてる奴だろ。

>他の言語もお前さんが思ってるより奥が深いよ。

しかもやっぱり自覚が無いみたいだな。

702 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:28:38 ]
>>701はどんな言語も浅く見える天才

703 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:30:18 ]
>>702
俺は何だって必要以上に崇めたりはしないよ

704 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:30:30 ]
>>701
反論なら具体的に頼むよ。
独り言ならそれで結構だけど。

705 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:31:28 ]
小手先のテクニックに溺れるには一番良い言語だよなあ。

706 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:32:46 ]
>>703
ああ、崇めてる、と読み取ったのか。
単なる誤解だな。

707 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:34:51 ]
>>704
>>688 は自分で書いた通りの人間だって事さ。
他人より深い所とやらが見えてしまう病気だね。

708 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:35:56 ]
なにこれ、こんなのrubyなら(ry、haskellなら(ry、lispなら(ry
って考え方しちゃうと生産性の低い言語って見方になっちゃうから変態極めるのも難しいのぅ

709 名前:706 mailto:sage [2008/05/03(土) 14:37:16 ]
補足すると、
>>678の「誰も全貌を〜」に対して、
他の言語も全貌を把握するのは容易ではない、と言いたかっただけだ。



710 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:40:30 ]
>>707はすべて見通せる超人

711 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:40:39 ]
>>709
>他の言語も全貌を把握するのは容易ではない

C++と一緒にされたら笑うしか無いなw
レベルが違うよ

712 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:47:09 ]
それでも規格書のページ数ならまだcommon lispの方が上だよw

713 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:49:46 ]
>>711
俺には「俺はjavaやc#の全貌を把握している」
なんてことを言うことは出来ない。
言語以外もだけど、まだまだ勉強は続いている。
力不足ですまない。

714 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:53:21 ]
天才がいらっしゃるようですね

715 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:55:01 ]
おまいらさっきまで意気揚々と山登りしてたくせに、えらい変わりようだな。

716 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:56:50 ]
山登りしてますよ

717 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:59:09 ]
一番高い山はどの山?

718 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:02:01 ]
haskellに一票

719 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:05:13 ]
lispとperlもヤバいw
ハッカー連中は雲の上行ってんなw



720 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:08:36 ]
一人で登る分にはいいけど馬鹿と一緒だと悲惨な山は?

721 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:09:48 ]
boostって山道教えてもらったんだけど。どう?C++山の近道らしいよ。


722 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:09:59 ]
全部

山をなめんな

723 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:14:08 ]
サーセンw

みんなと街にいるのが好きなもんで

724 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:15:49 ]
Lispやべぇ
www.geekpage.jp/blog/?id=2007/8/20

725 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:17:43 ]
>>698
別に地球の人々を救うためにプログラミング言語選ぶわけじゃないからなぁ。
なに言語のユーザーであれ、山で餓死しようが海で溺死しようが、他人はあんまり困らないものだよ。

726 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:18:55 ]
むしろ山にいるつもりのままで里に下りて来られると困る

727 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:20:33 ]
ねーよw

728 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:20:40 ]
特に、無能が無能であることに寛容なヌルい里はやばいね。
修行帰りの人が混じると地獄と化すね。

729 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:21:03 ]
修行w



730 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:23:47 ]
>>729
実際、C++を学習する程度のことが、なんかこう、修行とか拷問に見えちゃうたぐいの人、
結構多いからねぇ。このスレ立てたのもそのクチだけど。

731 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:25:27 ]
いやいや、c++に限らず、他の言語も奥が深いよ。

732 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:27:42 ]
むしろ、c++以外わからない奴が必死にc++広めようとしてるんだろ

733 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:31:26 ]
まあ、C++より簡単な言語は、C言語ぐらいで、他は難しいもんなぁ


734 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:32:19 ]
しかし、>>1が言ってるのは実は
C++でなく、C++/CLIである件

735 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:32:32 ]
せめてJavaくらいは学んで欲しいよね

736 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:34:59 ]
JAVAなんて、なぜ、仮想マシンなんか作ってその上で実行しないと行けないのか考えたら
夜も眠れなくなるから、学ぶ気にもなれない
JAVA使うぐらいなら、Java Scriptでいいじゃないかと思う


737 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:35:47 ]
落ち着け

738 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:35:56 ]
最後の行はネタだよなw

739 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:36:18 ]
ソースを見たときに、

float x = std::min( 1.0f, y );

とあったとする。このソースから
関数の機能は、名前からある程度推測することは可能だが
二つの引数の意味を知ることは、不可能だ。

俺は、ここはC系統のひとつの弱点だと思っている。
これを克服した言語はあるか?VB以外で



740 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:37:01 ]
最後の行だけ?

741 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:38:36 ]
>>739
名前から推測で良いなら CL, Smalltalk, ObjC などなど

742 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:44:34 ]
>>740
悩むのは自由w
というかjavavmを使わないケースあるからね

743 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:06:50 ]
>>739 Python
def foo(a, b, c):
print a, b, c
foo(a = 1, c = 3, b = 2)
名前つき引数が可能

744 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:07:48 ]
C++にはキーワード引数は無いの?

745 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:13:46 ]
ocaml

746 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:15:07 ]
>>744
無い。
D&Eのどっかにその話があった気がする。

747 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:18:56 ]
JAVA VMを使わないなら、JAVAを使う意味も無いのでは?
そして、JAVA VM使うなら、Java Scriptでも十分じゃなかろうか?


748 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:20:53 ]
意味有るし、javaとjavascriptは単に名前と構文が似てるだけで、
別の言語。

749 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:22:21 ]
>>746
考慮したんだ。意外。



750 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:25:06 ]
JAVAとJava Scriptは違うなんて常識の話じゃん
何を今更
それはともかく、JAVA VMを使わないJAVAに何の意味があるのか全く判らない


751 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:29:46 ]
まず、何で意味が無いと思うか聞こうか。
vmware上で動くlinuxが、
物理マシンで動いても何ら困らないと思うんだが。

752 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:38:15 ]
つまり翻訳するとこういう事だろう!

ECMAScript は現在望み得る最も素晴らしい神の言語。
C++ は Tamarin や JavaScriptCore の実装言語だから
それなりに良いんじゃない。どうでも良いけど。

753 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:44:40 ]
戸田翻訳かよw

754 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:12:13 ]
>>751
それは意味が違うだろう
x86用のソフトを、68000で動かしているそんな違和感

755 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:15:12 ]
Tamarinが悪いのっ

756 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:17:40 ]
>>754
68000で動くとソフトの意味無くなるの?


757 名前:デフォルトの名無しさん [2008/05/03(土) 17:20:10 ]
奈津子さんこそ神だろ。
wつけんなよ。
馬鹿にしてると思われるぞ。

758 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:22:04 ]
ごめんなさい。

759 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:26:31 ]
Tamarin、Tamarinうっせーよと思いつつググって、
ちょっと興味持ってしまった。



760 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:53:39 ]
>>744
boostで名前つき引数に対応してる
ttp://www.kmonos.net/alang/boost/classes/parameter.html

761 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:54:40 ]
>>756
貴方日本語判りますか?
私少し判ります
貴方日本語変


762 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:01:47 ]
>>761
変でも何でもいいけど、
>>750-751の通り、意味が無いと思う理由を書いてくれないかな。

763 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:09:25 ]
貴方JAVA理念しってますか?
VM使わない、理念に合わない、しってますか?

764 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:12:42 ]
JazelleとかLiquidVMとかjavaコプロセッサとか
ネイティブトランスレータとかあるけど、
理念に合わないことはない。

理念に合わない理由を説明してもらえないか?

765 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:20:30 ]
>>764
貴方嘘良くない
貴方言うハードワイヤードVM
それJAVA VMね


766 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:22:30 ]
それも仮想マシンに含むならそれで結構だよ。

767 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:27:50 ]
プロセッサも仮想マシンならCも仮想マシン上になるな
処理系がターゲット環境だし

768 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:31:21 ]
HotSpot も Strongtalk も LLVM も Squirrel も Tamarin も
JavaScriptCore もその一部の KJS も C++ なんだよな。
Firefox も Thunderbird も OOo も KDE も Qt も Qtopia も
wxWidget も C++ だし、C++ が分からないとパッチも
書けやしない。嗚呼 C++ がもう少しまともだったら…

769 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:32:16 ]
>>760
すげーな、
boost無理やりすぎ



770 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:33:44 ]
>>767
それは、違うだろ


771 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:39:04 ]
C++は言語自体はあれで出来るだけ最小化されてるんだけどな。
それでも足りないからライブラリで補う、って言って、
あのカオスなライブラリなんだよな。

実際、キーワード引数やガベージコレクタや
今ライブラリでどうにかしてる他多数の機能を
言語に入れろって要求がめちゃめちゃ来てるそうだし。

多分、手に負えない程高度に見えるのは、
ライブラリ作る人達が気合い入れすぎだからだと思う。

772 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:39:07 ]
それじゃあ、JavaVMの理念どうこう以前に
仮想マシン自体が存在しなくなっちゃうよ

773 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:39:40 ]
>>770
何で?

774 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:42:53 ]
>>770
Cの処理系=ネイティブトランスレーター

775 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:48:56 ]
>>773
JAVA VMってのは、仮想のCPUを定義したクラス
インスタンスとしてのJAVA VMがソフトウェアかハードウェアかは問題では無く
JAVA VMの定義に合っていればJAVA VM


776 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:56:01 ]
>>775
Cは物理的なマシンとかCPUを定義してたっけ?

777 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 18:58:38 ]
何か面白いの見つけた

ttp://www.geocities.co.jp/SiliconValley-SantaClara/1294/parsingcxx.html

778 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:01:06 ]
>>771
大きい小さいと言うのもあるけど、みんなが嫌がってるのは
文法が汚いって事じゃないかな。その所為でコンパイルも遅いし。

779 名前:771 mailto:sage [2008/05/03(土) 19:09:03 ]
>>778
>>777も見て納得した。
ただ、Cとの互換を維持しようとしたのと、
拡張を重ねたって事情はある程度分かってあげて。
この対処は作り直ししかないけど、
javaとかDも徐々に拡張が・・・



780 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:09:55 ]
>>776
してないよ


781 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:13:49 ]
C++の文法は汚いって言われればそのとおり何だけど、それ以上に強力で面白い。

782 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:14:01 ]
だよな
だからCは処理系という仮想的な環境で動いてる
と考えられるわけだ

783 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:14:12 ]
>>771
ライブラリで無理やり実装ってのはCOMで懲りた。
俺もライブラリで補填ってのは間違った方向性だと思う。

言語仕様にあるなら使う、無いなら使わない。
これを守れば、それなりにすっきりまとまるのに
無いならライブラリでそれっぽいの作りましょうとかするから
複雑化するんだよな。

784 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:26:31 ]
>>777のはマジ別の言語を作ろうとしてるなw
テンプレートも使い過ぎると高度過ぎるけど、
プリプロセッサまで使ってメタプロされると流石にギブアップ
boostのmplとかラムダとかの人はそろそろ勘弁して欲しい

785 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:28:48 ]
間違えた
777じゃなくて>>760のリンクだった

786 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:30:03 ]
en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B

C++は文脈依存文法であるのがコンパイルを遅くする原因みたいだから、
JavaやDが拡張されてもC++の様にはならなさそうな。

787 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:32:13 ]
テンプレートとプリプロセッサだけでここまでできるなんて、C++なんて恐ろしい子

788 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:33:59 ]
>>782
ちげぇーよ
CやC++に仮想環境なんてないよ
そんなの、古いコンパイラに今のコード突っ込めば判るだろ

789 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:35:23 ]
ソリアセンブラで出来ることさえ押さえてまけばマクロで銅にでもなる



790 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:36:19 ]
自前プリプロセッサでラムダとかC++の人は節操ない

791 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 19:37:43 ]
>>788
はぁ?

792 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:20:15 ]
>>786
特にDは、コンパイラの作りやすさに重点を置いていることを
はっきり明言している言語だものな。

793 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 20:42:10 ]
Javaもその道の達人が設計に関わったからな

794 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:31:04 ]
コンパイラの作りやすさなんていう利用者には
問題にならないことを優先するよりも、コーディング時の
融通の利きやすさを優先させたほうが、使うほうには
有りがたいと思うけどな。
コンパイル速度はさすがに無視できんけど。

795 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:31:51 ]
処理系の実装のし易さと言語それ自体の使いやすさを混同しないように

796 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:45:58 ]
>>795
釣りだとは思うが…

797 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:54:30 ]
>>796
どういう趣旨の釣りだとお思いで?

798 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:55:05 ]
コンパイラの実装しやすさと、
言語の使いやすさが別物というのに異論は無いけど、
コンパイラの実装しやすさが、コンパイル速度の向上や、
コンパイラが用意されるプラットフォームの増加に繋がって、
言語ユーザーへの恩恵にもなったりするよ。

799 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:12:26 ]
>>797
パーサが書き易いと言う事は自分で好きなだけ構文を弄れるという事だ。
Boost を有り難がってる人種ならその意味が分かるだろ。

釣りか素人かどちらか知らんが、こんな事説明させるなよ。



800 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:19:37 ]
>>799
あほですな

801 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:20:06 ]
パーサを弄るのとテンプレート弄るのは難易度や労力が全然違うだろ。
わかりやすい文法はパーサ作るのは楽だろうが、パーサ作るのが楽なら文法がわかり易くなるかというとそうではないし。FORTHのパーサとか超簡単だけど読みにくいし。


802 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:22:35 ]
>>801
誰もそんな話してないだろw
曲解して否定するのが得意だな

803 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:25:31 ]
>>799>>802
パーザなんて弄ったことない小学生なんでしょ?

804 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:29:26 ]
>>799
1行目と2行目の関連がよくわかりません
ご説明をお願いします

805 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:33:18 ]
>>804
パーサが何をするかは知ってるの?

806 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:35:27 ]
構文解析をします

807 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:39:13 ]
C++の文化だと自分でコードの自動生成したり構文拡張したりはしないのか

808 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:39:27 ]
Boostが何をしないかは知ってるの?

809 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:41:51 ]
>>807
OpenC++ってのもありますが、
今やtempleteがありますしね。



810 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:42:44 ]
超言語的拡張をしません

811 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:44:27 ]
>>808
何をしないの?

812 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:45:07 ]
>>811
>>810


813 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:45:23 ]
boostは小文字でおk

あと、
>Boost を有り難がってる人種ならその意味が分かるだろ。
分かりません。
機能性の優先度は高いものの、メジャーな環境で使えるよう
かなり配慮されて #if とか入りまくりなのに
俺構文作って他のコンパイラで使えなくなったら意味無いじゃん。

何のための(次期)標準かと。

814 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:45:26 ]
>>807
プリプロセッサとテンプレートの仕事なのです。

815 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:46:18 ]
具体的にどんな超言語的拡張をしたいの?

816 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:46:52 ]
>>814
自分でプリプロセッサ作りたくなるでしょ

817 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:47:48 ]
>>807
コードの自動生成はよく行われると思うけど
構文拡張を個々人がするような文化はC++にはないと思う

そんな文化があるの?
ポータビリティはどうなるの?

818 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:51:15 ]
>>816
それと処理系の実装しやすさとは関係ないでしょ
自分プリプロセッサの文法とは関係するけど

819 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:52:07 ]
>>817
例えば cfront を書きたくなったりしたのも最初は個人でしょ



820 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:54:22 ]
コンパイル時に帰納関数を計算するtemplate
演算子オーバーロード
SFINAE
に加えて、
concept_map
があるから独自プリプロセッサなんかいらない。

821 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:55:22 ]
>>819
そんなの上位の一握りだし、さらにその頃とは状況がかなり変わってるし。

822 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:55:37 ]
>>819
だから何?

823 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:57:54 ]
cfrontを書いたのは個人じゃないぞ、AT&T。
bsは方針を練ったが、実装は雇われプログラマがやった。
テスターも雇われがいた。
もともとは電話交換機用のプログラミング言語として作ったから。

824 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:00:56 ]
やっぱり文化が違うな。
まあC++どっぷりじゃそんな気もなくなるか…

825 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:02:29 ]


826 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:02:54 ]
fabrice.bellard.free.fr/tcc/

例えばC++だと↑こういうのを作るのは無理だよね
コンパイルに死ぬ程時間が掛かるから

827 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:04:13 ]
理屈ではC++最強とは思うが
現実的に何かを作る際に他言語のほうが手っ取り早い(、上に最近は処理時間にそれほどシビアにならない)ってのが
C++選択を躊躇させる

828 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:06:29 ]
コンパイラの実装が無いプラットフォームへの対応とかならまだしも、
ポータビリティ0の独自仕様を個人でとかありえないな。

829 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:06:35 ]
上位レイヤーにしか関わらないPG/SEが増えてきたって事かな。



830 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:10:33 ]
>>828
プリプロセッサならポータビリティは損なわれないでしょ
例えば↓ObjC->Cのトランスレータだけど、C Compilerは何でも良い

users.pandora.be/stes/compiler.html

831 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:11:35 ]
下位レイヤーが大勢居たらカオスになるだろ。

832 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:14:21 ]
>>794
>コンパイラの作りやすさなんていう利用者には

コンパイラを書かないしコンパイラのソースも読まないPGが
増えてきたって事かな。

833 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:17:55 ]
これからはプロセッサのスペックアップは鈍化して
期待できないから、C++がまた隆盛になるかもだな。

834 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:18:27 ]
読むのはともかく、コンパイラ書く奴が大勢居たらカオスになるだろ。

835 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:18:53 ]
jikes.sourceforge.net/

Jikesみたいなコンパイル速度が売りのコンパイラはC++にあるの?

836 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:23:08 ]
>>834
特色のある言語処理系が色々と出てくるのは悪い事じゃない
例えばCINTとか

root.cern.ch/twiki/bin/view/ROOT/CINT

837 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:25:23 ]
まあでも今時C++を使ってる人間は余程の熟練者なんだろうな
そうじゃなきゃ普通は>>827みたいに考えるよね

838 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:25:35 ]
>>835
頑張ってググッたようだけどjikesなんて使われてねぇよ

839 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:27:28 ]
>>838
昔は結構使ってたぞ。それなりに有名だったんだが、最近の連中は知らんのか。



840 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:28:35 ]
今は使われていない事に変わりはないだろ。

841 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:28:58 ]
>>839
古参乙
いつのJDK互換か知ってて言ってるのか?

842 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:30:41 ]
>>840
それでも言いたい事は分かるだろ
C++は今も昔もゼロなんだよ

843 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:31:03 ]
C++と比べれば、Javaなんて標準のコンパイラでもめちゃくちゃ速いです。

844 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:32:43 ]
>>843 つまらん

845 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:33:59 ]
C++は標準のコンパイラも無いからポータビリティが大変です。

846 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:34:28 ]
IBMみたいに体力あるところとかOSSならともかく、
独自実装なんてやったアホなコンパイラは標準について来れずに死滅しました

847 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:34:53 ]
>>842
C++に大衆性がないのに同意しない人間はいないだろ。
firefoxとかadobe readerとか、一部のエリートプログラマは使っているが。

848 名前:846 mailto:sage [2008/05/03(土) 23:35:03 ]
javaコンパイラのことな

849 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:36:05 ]
>>847
エリート乙



850 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:38:08 ]
>>846
Microsoft ってまだ Java やってたんだな…

851 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:41:52 ]
>>821
>そんなの上位の一握りだし

今日一番寂しい言葉だったよ... (´・ω・`)

852 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:43:28 ]
>>850
やってないよ
お亡くなりになるJ#のこと?

853 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:45:15 ]
>>851
何で?
メジャーな環境のフリーなコンパイラがあるのにそんなことするのは
余程上の人間か、もしくはただのアホだろ

854 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:45:43 ]
>>852
やっぱりそうか
「独自実装」で一番最初に思い浮かんだw

855 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:48:08 ]
>>853
何でって、昔は俺言語を作るのが普通だったから…
ガッコでコンパイラの授業あるだろう

856 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:48:17 ]
J#あったなw
最後までJDK1.1(笑)互換だったけど騙されて使ってた会社は、
今もメンテで使ってるかもな。

857 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:50:58 ]
授業で習って、その流れで俺言語作るのと、
実用のために俺言語作るのはわけが違うだろ常考。
どんだけの新言語がポシャッってると。

858 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:54:11 ]
俺言語作るよりチャレンジングなのがC++のtemplate変態プログラミング。

859 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:55:29 ]
ハードウェアとセットで囲い込むか、
マーケティング力が無いと無理だろうな。

そういう意味でRubyはすごいと思うよ。
Railsのおかげではあるけど。



860 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:55:35 ]
実用の為の俺言語作ってる奴も多かったよ
ツール組み込みのマクロとか

861 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:58:29 ]
マクロまでハードル落としたなw
そりゃマクロなら結構居るだろうさw

862 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:59:59 ]
>>861
マクロっつってもフルセットの Scheme とかだぜ
まあ俺言語じゃないけど…

863 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:01:30 ]
反応を見てると、やっぱり最近の人はそういうのやらないんだな…

864 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:05:39 ]
俺の先輩は新入社員研修でCのコンパイラ作らされたって言ってたな
やっぱり文化が違うw

865 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:07:44 ]
俺言語の話をしたいのか互換実装の話をしたいのかちゃんと絞ろうぜ・・・

俺も別に完全否定する気はないし、
  小規模な俺言語(マクロ)
  コンパイラが無いプラットフォームへの実装
  標準についていく力がある組織による競合実装
なら十分有りだと思ってる。
  
C++の個人での俺拡張がありえないって言ってるわけで。

866 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:10:51 ]
>>865
>C++の個人での俺拡張がありえない

俺もそう思うよ。腐った木に水やりをする人間はいないからね。
D や Java はそこら辺ちゃんと筋を通してる。

867 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:22:25 ]
今日は入り浸りすぎたんで暫くレスを自粛するわ…
じゃあね

868 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:24:39 ]
Javaはコンパイラ拡張が専門のPolyglotって実装があるよ。
C++はg++ベースが多い。例えばConceptGCC。

869 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:16:59 ]
プログラム書くのにコンパイラの実装なんて気にする必要ないじゃん

つか、C++簡単だろう
わかんない、どんだけ低能なんだよ



870 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:20:55 ]
簡単ではないだろう
STLからbostまでにどれだけの英知が必要だったか

871 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:38:30 ]
>>870
それは別にC++が特別ではないだろ。
本格的な言語ならどれだって大量のリソースが注ぎ込まれているはず。

あと、使う方もC++が特別難しいとは思わないが、ほかが特別簡単とも思わない。
例えば、自分1人で作るプログラムなら当然C++は候補の1つ。
利点欠点を考え気分を加味して、C++が最良と思えばそれを使う。別のが良ければそれを使う。

872 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:50:00 ]
程度問題だけど
標準ライブラリがあれほど言語の能力を使いきれてなかったのも珍しくない?
つまり標準化委員達にも把握できてなかったわけで

自分はC++を理解しているつもりだけど、本当はboostの先が果てしないのじゃないかと

873 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:56:03 ]
そもそも標準ライブラリのbind.*とかが欠陥品だからなぁ・・・

874 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:58:11 ]
かなり早い時期に作られたライブラリなんだから責めないで。
何年もの研究の成果があってこそのboostなんだし。

875 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:01:05 ]
というわけで正しくC++を使うのは識者たちにも難しかった

876 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:13:02 ]
正しくって?
限界まで、の間違いだろ

877 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 07:40:58 ]
iostreamきもい

878 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 07:43:23 ]
>>847
パソコンで箱売りされているソフトの大半がVCで書かれてますが?

879 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 07:49:17 ]
土方の話はしてないからw



880 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 11:16:01 ]
>>870
道具を作るのには英知が必要かもしれないが
道具を使うのには英知なんて必要ないだろうが

881 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:22:17 ]
>>879
話を限定しないと、C++に大衆性が無いなんてトンデモ理論は
言い続けられないですもんねw

882 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:13:39 ]
>>880
最近その言葉の意味を身をもって知ることになったんで同意する。
道具を使うのは簡単なんだよな。使い方勉強すればいいだけなんだし。

883 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:32:55 ]
まぁ、使うのは作る知識の5%くらいは必要とかそんな感じなんじゃない。
その5%にも満たないという残念な実感、そんな経験が俺にもありました。

884 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:01:25 ]
よく見ると>>2が痛々しいな

885 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:34:27 ]
          >  新総督はナナリーだよ!!!  <
           ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
      _ - '´rニ- 、_  ノ}
   /{/:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: ̄._ニア       : , '´::::::::::::::::::::::::::::::`丶、: 
   {:.:.| .:.:.:.:.:.:.:.:.:.:.:.:.:.:. :.ノl:.:.ヽ       : /:::::::::::::::::::::::::::::::::::::::::::::::ヽ :
  __,>:.:.: .: :.:.l:.l:.:.l:.:.:.:.:. .: .ヽ、.:.:.\     : /::::::::::::::::::::::::::::::::::/::::::::::::::::::::', :
∠_:.:.:.:.:.:.:.:.:.ノノ_:.`ニ=‐.:.:.:.:ハ:.ヽ:.:.:.:.ニ=- : //::::l:::::::/:::::;/::/::::;ヘ:::::::|:::::::::::::} :
 . |.:.:.:.:.|:.:.|:.:.|:.ゝゞ`、:.:|:.|_}.:.|:.:.:.:..}   ://::::::l:::::;ヘ/, '/:/::/ ::::|:::::l:::::::::::::{ :
 . |:|.:.:.:.{:.:.{∨仁¨-、ヽ/≦ソリ:.:i|ノ    : /|::::::l/(◯), 、(ひ)::::リ:/:::::::::::::l :
  リ:.:(\ヽ rr=-,   r=;ァ{:./´     : .|ハ::|:::l"",rェェェ、"" ::::::/::::::/`i;':| :
   `ヽヽゝヽ  ̄     ̄ l:.ヽ、     : l' |l:::!  |,r-r-|   :::::/;::::::;'_.'´ハ :
   ∠_:..:.¨ヽ   'ー=-' ,ノ  ̄        : l;' ',  `ニニ´  :::::/:://:::/ :

886 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:08:58 ]
>>883
5%どころか0.05%ぐらいが妥当じゃないかと

887 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:22:26 ]
>>880
残念だが、俺の作ったライブラリを使うには
とびっきりの英知が必要になるぞ

888 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:26:44 ]
mb2sync乙

889 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:42:56 ]
>>887
使い勝手が悪いってことじゃないかそれ。



890 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:25:02 ]
>>887に英知が無いことだけは良く分かった

891 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:19:01 ]
酷いネタにマジレスを見たw

892 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:27:56 ]
レスを追ってて思ったんだが、
CのFree()とC++のデストラクタとC#のDispose()って具体的に挙動や用途としてはどうちがうの?
なんとなくはわかるんだが、正確にどういう違いがあるかわからん。

893 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:39:12 ]
C++にはdeleteもあるぞ。

894 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:39:25 ]
malloc して free しない →100%メモリリークする
new して delete しない  →メモリリークするかどうかはケースバイケース
New して Disposeしない →メモリリークするが一部はガベージコレクションで救済される

895 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:25:11 ]
ちょっと3レスに分けて書くよ。

<C>
・malloc() :メモリ確保
・free() :メモリ解放(mallocが再利用出来る。OSに返すとは限らない)

すぐ終了するプロセスは、大量に確保を
繰り返すもので無い限りfree()しなくても大丈夫。
長期的に動くプロセスはfree()を使わないと
malloc()で再利用出来ないため、問題となる。
ただし、mallocの実装によっては徐々に断片化してオワル。
なので、組み込みのようなものではmalloc系を使わない、
ページ単位で確保する処理でラップなどで対応。

896 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:25:40 ]
<C++>
・new:malloc()して、それをthisとしてコンストラクタを実行
  ※厳密にはmallocとは限らない。
・delete:デストラクタを実行したあと、free()する
・デストラクタ:メモリ解放はしないけど、リソースの解放などをする。
 なので基本的に呼ぶこと。

newを使用しない自動変数の場合は、
変数のスコープから出る際にデストラクタが呼ばれる。
リソースもモダンなOSはプロセス終了時に破棄するけど、
名前付き共有メモリマップのような
プロセスを超えて生存する仕様のリソースは当然残る。

897 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:26:06 ]
<C#>
・メソッド内のusing:指定された変数が
 usingのスコープから出る際にDispose()が呼ばれる。
・Dispose():メモリ解放はしないけど、リソースの解放などをする。
 なのでDisposableを持っている場合は基本的に呼ぶこと。

C#はGCがあるので放っておいてもメモリは解放される。
その前段でFinalizeが呼ばれるので、その際通常はDispose()が呼ばれる。
つまり明示的にDisposeしなくて呼ばれるが、
GCはコネクションプールの枯渇などを検知しないので、
メモリに余裕がある場合はいつまでもFinalizeも呼ばれず問題となる。

898 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:35:43 ]
デストラクタはいるけど、deleteはいらないな。

899 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:39:44 ]
そうだね
delete不要論はsmart_ptrによるRAIIのテクニックが広まった頃にC++プログラマは口々に言ってたよね



900 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:42:10 ]
>>894
1行目をリークとするなら2行目も100%リークです。
3行目もおかしい。文脈的にはそのケースはメモリリークしない。

>>898
何で?

901 名前:900 mailto:sage [2008/05/05(月) 11:43:55 ]
スマートポインタが内部的に呼ぶから明示的なdeleteは不要、
ということならおk。それなら同意なので。

902 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:51:30 ]
ユーザコードでdeleteを記述したかどうかなんてのは、deleteの有無を論じる上で正確じゃない。

A * a = new A;
// iroiro
a->~A();
こんなコードを書く奴が出てきてしまうかもしれん。

903 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:07:00 ]
>>902
しかし、
class A{
B *b;
public:
A(){
b = NULL;
};
~A(){
delete b;
};
void SetB(B *s){
b = s;
};
B *GetB(){
return b;
};
//色々な処理
}
というクラスの場合、
自分がnewしたからと言ってbを勝手にdeleteしちゃうと不味いよね


904 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:19:12 ]
それただのクソコードじゃんw
どういう責任範囲か不明だし、Aが責任もつならSetBのときにdelete bだろ

905 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:21:21 ]
newをユーザコードで直接使わずにfactory methodを使えと言うことですか

906 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:22:20 ]
>>903
>>902のAの設計思想を知らんけど、Bの生存期間をAに移譲しないなら、
自分でdelete bに相当する操作を行うべきで、~Aにdelete bがあるのがおかしい。
仮に>>902のAをそのまま使うとしても、次のようなコードにするべきだ。

some_smart_ptr<A> a(new A);
some_smart_ptr<B> b(new B);
a->SetB(b.get());
// iroiro
a->SetB(NULL);

907 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:44:55 ]
>>906
a = new A;
some_smart_ptr<A> b(a);
delete a;


908 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:50:13 ]
>>907
何が言いたいんだw
バグを披露したいのか?

909 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:51:27 ]
そこでGCだ



910 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 12:55:43 ]
newしたらdeleteすべしと言うことは、>>907って事だろ

a->SetB(new B);
とどう違うのかって話にも取れるな


911 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:03:18 ]
どんだけw

a = new A; //newしたら
some_smart_ptr<A> b(a); //deleteすべし

「明示的な」「責任」「生存期間」とか言い方はそれぞれだけど
>>899 >>901 >>902 >>904 >>906 は皆そういうことを言ってる

912 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:10:26 ]
>>896
> ・delete:デストラクタを実行したあと、free()する

ちがうぞ。allocatorのdeallocate()を呼ぶ。


913 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:14:52 ]
>>912
だから「※厳密にはmallocとは限らない。」って書いたんだけど・・・。
>>892向けに書いたから分かりやすいようにあえてそうしたの。

914 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:17:21 ]
newも厳密に言ったらoperator newとか配置newとかあるしな

915 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:19:26 ]
>>911
>>903コードだと、class Bは、class Aのプライベートなメンバーじゃん
class A以外で、*bをdeleteしちゃ不味いだろ、Aの生存期間が終了するまでの間にBを利用する可能性があるんだし
ゲタやセッタがあって、Aのコンストラクタでbをnewしないって事は、クラスBの派生クラスCを使う可能性だって考えられるし


916 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:21:52 ]
>>911にclass Bなんか出てきてないけど。

917 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:23:30 ]
>>916
>>903にでてるじゃん


918 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:23:55 ]
>>913
malloc/free使う実装ってあるの?

919 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:27:32 ]
>>915
> >>903コードだと
まだ>>903のコードのこと言ってると分かって軽くフイタw

> プライベートな
privateだろうがset,getがあれば同じこと

> Aの生存期間が終了するまでの間にBを利用する可能性
>>904 >>906であるようにAの仕様が意味不明なので何とも言えない

> 派生クラスCを
Cを使っても問題無い(virtual ~B()でないのに継承してAに渡すのはただのバグ)



920 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:27:49 ]
>>917
なぜ>>911に対してコメントしたの?

921 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:30:38 ]
>>920
>>910への返答が>>911だから


922 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:31:55 ]
>>918
あると思うよ。

923 名前:919 mailto:sage [2008/05/05(月) 13:33:41 ]
>>921
ああスマン a->SetB(new B); のところはどうでも良すぎて無意識にスルーしてた

924 名前:922 mailto:sage [2008/05/05(月) 13:36:30 ]
>>918
とりあえずVC++
okwave.jp/qa2980583.html

925 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:42:05 ]
a->SetB(new B)は駄目で、some_smart_ptr<A> a(new A)はいいって、どんなやねん
どっちもスマートポインタだろうがw


926 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:43:16 ]
>>918
g++は下請のlibiberty/xmalloc.cからmalloc()呼び出してる。
libibertyは差し換えられるようになっているけれど。

927 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:48:46 ]
>どっちもスマートポインタだろうがw

>Aの仕様が意味不明なので
とあるように、それならそうと始めから書いてくれないと。
>>903のようなコードからスマートポインタを
書こうとしたことを読み取るのは難しい。

分かってる人ならサフィックスに_ptr付けるとかする。

928 名前:903 mailto:sage [2008/05/05(月) 13:52:39 ]
俺のコードですまんかった
C++覚えてまだ半年ぐらいで難しいことはわからん
ウインドウズ用のクラスライブラリ作ってて、MDIクライアントとかdeleteするのが面倒で、あんなコードをいっぱい書いてる
そっか、駄目なのか...楽でいいのに...orz


929 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:53:41 ]
>>925
> どっちもスマートポインタだろうがw
分かんねぇよw
コンストラクタくらい付けろw
コピーされた場合もどうすんだよ



930 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:55:14 ]
>>929
色々な処理に入ってるんじゃないの?

931 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:56:29 ]
>>928
std::auto_ptr, boost::shared_ptrあたりの使い方を覚えるべき。

932 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:59:35 ]
>>930
auto_ptrの仕様や、shared_ptr・weak_ptrが作られた理由は、
色々、で片付けられるほど気軽なものじゃないんだせ・・・。

933 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:05:27 ]
>ウインドウズ用の
まぁ今だったらマジでC#オヌヌメ
既存の資産もDLLにしとけばC#から使えるし。

934 名前:903 mailto:sage [2008/05/05(月) 14:13:05 ]
>>933
大枠は既に出来て、あとは細かいコントロール類だけだから、今更C#を覚えるよりは速いかな
C++をマスターしたと思ったらC#も触ってみるよ


935 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:29:02 ]
これらを元に考えると、 犯人は男、もしかすると女の可能性もあり。
年齢は10代〜50代、あるいは60代以上。
身長は1m〜2mくらい。
犯行は単独もしくは複数。


936 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:36:25 ]
そして調査の結果、事故死であることが判明。

937 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:38:00 ]
車の中でC#動いてたらイヤでしょ

938 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:14:19 ]
>>937
バグでエンジンがかからなかったり事故を起こしたりしなければ別にどうでもいい。

939 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:20:41 ]
プログラマって授業中にずっとノートにコード書いてたり、家でこそこそギャルゲ作ってて
将来のことで親と喧嘩して、ゲームとかソフトとかなにか作って食って生きたいって言うも、
そんな子供みたいなことをいつまでもやってるんじゃないって頭ごなしに否定されて
夜の街を彷徨って帰ってきたら、みんな寝てないみたいで、暖かいご飯が用意されてて、
おかんと「おとうさんが大事な話があるからって」「・・・うん」みたいな会話しちゃう生き物だと思ってたけど違うの?



940 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:27:21 ]
>>939
それプログラマじゃなくてただの勘違いしたお子ちゃまだから。

941 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:06:03 ]
>>939
そういう生き方でもいい。お前の人生なんだもの。お前の思うとおり生きれよ。

942 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:14:18 ]
…といった具合にネタにマジレスしちゃうのがプログラマ

943 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:25:32 ]
マジレスに見えるんだw

944 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:27:14 ]
少なくとも>>941はマジレスじゃないだろw

945 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:27:51 ]
被った・・・

946 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 04:01:18 ]
…といった具合にネタにマジレスしちゃうのがプログラマ

947 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 05:21:21 ]
C++と関係ない話題は他所でやれ

948 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 12:17:44 ]
しかし、ベースになるクラスライブラリを作るのに、STL使えってのはどうなの?
むしろ、そういった物の場合は、vectorすらゆるさんぐらいで良いと思うが


949 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 14:10:30 ]
vectorを許さないで俺vectorを書くんですね、わかります



950 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:28:18 ]
自分の靴紐を持ち、上方にグイと強く引っ張ると身体が持ち上がります
次に反対側の靴の靴紐も同じ様に引き上げれば、宙に浮くことが出来ます

951 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:27:03 ]
>>950
空飛べた!
サンクス

952 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:28:18 ]
>>948
もちろんmalloc/free/printf/scanfも使わないんだよね?
対応するOSのAPIをラップするところから始めないと。

953 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:41:53 ]
>>952
STL使う使わないとは関係ない話だけど、大抵のポータブルなライブラリでは
そこらへんはランタイムまかせにせずラップ関数を使ってるよね。

954 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 22:19:09 ]
>>952
一歩間違えると、newやdeleteすら、オーバーロード無しには使えなかったりする環境もあるけどな


955 名前:デフォルトの名無しさん [2008/05/13(火) 12:22:26 ]
>>739
VB知らないから、的を外してるかもしれんが
AdaとかPythonは名前付きの引数使えるよ


956 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 06:37:04 ]
D言語のテンプレート機構は、明示的なインスタンス化が必要になる代わりに、C++には出来ないようなことまで出来る。
それば事実なのだが、それがいいか悪いかは別問題である。思えばJavaやC#にもGenericsが導入され、いよいよ本格的に足並みをそろえた感もある。
また、やねうらおも通常はC++でテンプレートを用いてかなり複雑なメタプログラミングを行なうこともある。
しかしだ。やればやるほど、こういう方向性は根本的に誤っているのではないかという疑念をいだくようになった。
それぞれの言語がそれぞれの方法でテンプレートをサポートしたり、それぞれ異なる仕様のプリプロセッサを持っていたりするのは非常にばかげていると思う。
現実問題として、C++のソースをC#、あるいはJavaに移植しないといけないことがある。この逆をしないといけないこともある。
そういったときに、言語に依存する機能ほど移植を難解にするものはない。
その言語を使う限りは気持ちよくプログラミングできるのかも知れないが、そんなプログラムを移植させられる者はたまったもんではない。最近、それを特に感じる。
結局何が悪いかというと、Genericsやらメタプログラミングやら、プリプロセッサやら何やらかんやら。
そういったものは、言語間で共通するサードパーティ製のツールで実現するべきであって、決して、言語仕様そのものを改定すべき問題ではなかったと思うのだ。
たとえばmix-inにしても、AspectJ/C#/Cppを用いることで比較的すんなり実現できる。
言語そのものにmix-inを取り入れて、それをその言語のアドバンテージかのように言うのは、もういい加減やめにしないか?DbyC(design by contract:表明つきプログラム)にせよ、何にせよだ。
結局何が必要かというと、もっと汎用的なテンプレートやDbyCを実現するための、Aspectほにゃららをも包括するようなツールと、そういったツールを受容する言語側の仕組みなのだ。
決して、必要なのはGenericsでも何でもない。その言語にしかないような言語固有の機能なんてメリットでも何でもないのだ。いい加減、みんな早く目を醒ませ!

957 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 07:58:53 ]
PL/1の夢、再来ですね。わかります

958 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 08:05:52 ]
まぁ、俺も移植することあるから気持ちは分かるけど、
外部ツールで実現された場合、移植元と先の知識を持つ技術者も減ったりと、
移植は余計大変にならない?
そのツールがたまたま移植元と先を両方ともカバーしていれば
容易にはなるだろうけど。

それに、ソース生成系でなくても、
cfrontは例外が実装出来ずにティウンティウンしたし、
GCは言語・ランタイムのサポート無しでは完全な実装が不可能だしね。
※ Boehm GCはハックみたいなもの

あとC++,Java,C#のジェネリックは全然足並み揃ってないです・・・

959 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 08:51:10 ]
>>958
> GCは言語・ランタイムのサポート無しでは完全な実装が不可能だしね。
> ※ Boehm GCはハックみたいなもの

「コンサバしか無理」と言えばいいのでは。



960 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 10:27:27 ]
コンサバが何か分からずググちゃったよ・・・w

「保守的GCしか実装出来ない」とは一度書いて消した。
そう呼びたくなくてね。
ハックみたいなもの、とやんわり言ったけど、
はっきり言うと俺はアレを「出来損ないGC」だと思っています・・・。

961 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:34:45 ]
それにしても、C++の言語デザインは忌むべきものだと思う。
「Effective C++」や「More Effective C++」、あるいは「Modern C++ Design」、あと「Effective STL」有名なのが、この4冊。
あとARM(The Annotated C++ Reference Manual:注解C++リファレンスマニュアル)、それからFDIS(C++ Final Draft International Standard)
ついでに「Exceptional C++」とか「More Exceptional C++」とかもか。
プロのまともなC++プログラマならば、これらをすべて読んでいて然りだし、少なくともFDIS以外は精読していて然りである。
そうは思うものの、いま「Effective C++」やら何やらを読み返してみると、ホント頭悪いなぁと思う。
もちろん「Modern C++ Design」もだ。書いている人が頭が悪いと言っているのではない。
こんな解説書が必要になり、また必須であると思われている状況が、もうどうしようもなくやるせなくなるのだ。
こんな解説書が必要になるというのはC++の言語デザインの悪さゆえなのに。
「Modern C++ Design」を知らずしてテンプレートを語るなと言われる。確かにそうかも知れない。
この本以前のテンプレート批判は本当に的はずれだった。
かと言って、「Modern C++ Design」が珠玉のテクニック集か何かと思われている雰囲気、これがもうたまらない。
はっきり言って、こんなテクニックを理解する時間があれば、まともなコンパイラが実装できるのに。
そっちのほうが、何倍も有益で、普遍的なものなのに。

962 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:47:27 ]
956も961も見覚えがあるんだが、いつどこでだったか思い出せない。

>>961
「C++の設計と進化」を追加。
そういうデザインにせざるを得なかった事情の一端が書いてある。

963 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 18:56:21 ]
C++はともかくとしてJavaのGenericsは正直どーか?と思うが。

964 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:25:13 ]
正直 C++ は酷いよなあ。

965 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:45:21 ]
>>961
お前結構前で知識が止ってるよ。
試行錯誤時代の「Modern C++ Design」をそんなに熱く語られても。

966 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:46:37 ]
上から目線ワラタ

967 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:11:25 ]
ARM & FDISも今となってはC++03規格と0xドラフトに置き換えだな。

968 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:13:57 ]
そして C++ は永遠に表舞台から消える訳か…
それ良いな

969 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:26:30 ]
縁の下の力持ちとして生き続けるということですね、わかります



970 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:31:43 ]
いや、どちらかというと蚊帳の外

971 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:31:54 ]
>>967
ARMは規格と違ってannotatedの部分が面白いけど、D&Eに置き換えだね。
「オブジェクトモデル」に相当するのがない。

972 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:36:24 ]
今北産業

973 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:01:05 ]
>>972
言語に依存すると移植が大変
有名な本は全部読め
次スレ頼む

974 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:04:44 ]
>>972

c++は言語オタが素人に本売るために複雑になっている

975 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:23:25 ]
>>961
> はっきり言って、こんなテクニックを理解する時間があれば、まともなコンパイラが実装できるのに。
それは無いなぁw

976 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:15:56 ]
VCが最後の砦という感じはする

977 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:17:36 ]
Windows Universe ではそうかもしれんね

978 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:51:39 ]
C++は最近使用範囲が広がってる感じがする
GoogleもMozillaも使っている

新しく始めるプロジェクトでC++を使えるのにCで書く必要はないのだ
名前空間と関数のオーバーロードがあるだけでかなりベターなCとして使えるのだから
もちろん主要なターゲット環境にCコンパイラしかないのならCを使うしかないが

979 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:01:54 ]
Mozilla は昔からでしょ
Google は Java も Python も JavaScript も独自言語も使っているし



980 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:12:40 ]
そうだよ
ネイティブコードを吐く言語としてC++を選択している
JavaもPythonもJavaScriptも使われる場面や用途が違う

981 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:20:40 ]
でも Yahoo! の Hadoop とかは Java なんだよね…

982 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 02:28:35 ]
そんな><

983 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 06:05:50 ]
名前空間はともかくオーバーロードはたまに困ったちゃん扱いされるじゃないか
ベターから外れる

984 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:29:03 ]
JAVAそのものはC++じゃなかったけか?

985 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:44:06 ]
C++を見捨てたというより、頭が悪くてC++についていけないだけの話だろ

986 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:48:25 ]
>>985
残り少なくなった C++ 信者の脳内設定ではね。現実は真逆。

987 名前:デフォルトの名無しさん [2008/05/17(土) 14:31:55 ]
CとC++の中間に位置する言語があればいいのに。

988 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:39:00 ]
中間もなにもC++でC++特有の機能を使わない様にコーティングすれば
済む話だと思うが。

989 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:47:15 ]
C++の終わりなき拡張(でいいのかな?)のせいで
どんどんとっつきにくくなってるから
そろそろ現ANCI準拠のC++と今以上に拡張するC++は別物として扱って欲しい。

そんな俺は最近C++に触れ始めたC++初心者。



990 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:53:01 ]
>>988
済まないからみんな困ってるんじゃないか
それで済むなら EC++ なんて作らないよ

もっと現実を直視しようぜ

991 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:41:22 ]
ANCI

992 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:49:42 ]
ANSIだったな。すまん

993 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 15:56:16 ]
>>983
Cよりも新しい言語では関数のオーバーロードを許す言語は多いじゃない
そしてC++より新しい言語でも多いでしょ
言語設計者が有用であると判断しているケースが多いわけだ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef